C:\Users\Kolink>php -r "echo 'é';"
Ú
C:\Users\Kolink>echo é
é
正如您所看到的,输出é
的程序会产生Ú
,但使用echo
命令会产生所需的字符。
并且,我可以配置PHP(可能在脚本开头有一些命令)来输出正确的字符吗?
答案 0 :(得分:3)
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 sp select=<codepagenumber>
或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在评论中指出的那样,您可以在Code page identifiers页面查找其他代码页的标识符。