C:\Users\Kolink>php -r "echo 'é';"
Ú
C:\Users\Kolink>echo é
é
正如你所看到的,一个程序输出一个é
结果是Ú
,但使用echo
命令给出所需的字符。
并且,我可以配置 PHP(也许是脚本开头的某个命令)来输出正确的字符吗?
CMD.exe 在与 PHP 不同的代码页中工作。顺便说一句,它也是与默认 Windows 代码页不同的代码页。这是为了与旧版 MS-DOS 程序兼容。在我的国家,Windows 使用 Windows-1250,cmd.exe 使用 DOS Latin2。我想在英国这将分别是 Windows-1252 和 DOS Latin1。
要获得相同的结果,您必须在 PHP 和 cmd.exe 中使用相同的代码页。检查 PHP 使用的代码页并将 cmd.exe 设置为相同的代码页。为此,请使用以下命令:mode con cp select=<codepagenumber>
or chcp <codepagenumber>
。这将仅更改 cmd.exe 当前实例的代码页。
以下是一些典型代码页及其编号的简短列表:
DOS Latin1 850
DOS Latin2 852
Windows-1250 1250
Windows-1252 1252
UTF-8 65001
ISO-8859-1 28591
ISO-8859-2 28592
正如 @Christophe Weis 在评论中指出的那样,您可以在以下位置查找其他代码页的标识符代码页标识符 https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756%28v=vs.85%29.aspx page.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)