C:\Users\Kolink>php -r "echo 'é';"
Ú
C:\Users\Kolink>echo é
é
正如你所看到的,一個節目在Ú
輸出一個é
結果,但使用echo
命令提供所需的字符。CMD的字符集
而且,我可以配置PHP(可能是腳本開始時的一些命令)來輸出正確的字符嗎?
C:\Users\Kolink>php -r "echo 'é';"
Ú
C:\Users\Kolink>echo é
é
正如你所看到的,一個節目在Ú
輸出一個é
結果,但使用echo
命令提供所需的字符。CMD的字符集
而且,我可以配置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 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韋斯在評論中指出,你可以在頁面Code page identifiers查找的其他代碼頁標識符。
謝謝,這非常有用!但ISO- *代碼頁號對我來說不起作用。在[代碼頁標識符](https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756%28v=vs.85%29.aspx)中聲明'iso-8859-1'具有'28591'和'ISO-8859-2'具有'28592'。 –
非常感謝!我已更正了我的答案,並向您找到的頁面添加了超鏈接。 – MBu
好吧,回聲似乎更多的是複製/粘貼功能。我不確定PHP .. – Coffee