Nie*_*sol 7 php cmd character-encoding
C:\Users\Kolink>php -r "echo 'é';"
Ú
C:\Users\Kolink>echo é
é
Run Code Online (Sandbox Code Playgroud)
如您所见,一个程序输出é结果a Ú,但使用该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>或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
Run Code Online (Sandbox Code Playgroud)
正如@Christophe Weis 在评论中指出的那样,您可以在代码页标识符页面查找其他代码页的标识符。