2011-09-27 23 views
6
C:\Users\Kolink>php -r "echo 'é';" 
Ú 

C:\Users\Kolink>echo é 
é 

正如你所看到的,一個節目在Ú輸出一個é結果,但使用echo命令提供所需的字符。CMD的字符集

而且,我可以配置PHP(可能是腳本開始時的一些命令)來輸出正確的字符嗎?

+0

好吧,回聲似乎更多的是複製/粘貼功能。我不確定PHP .. – Coffee

回答

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韋斯在評論中指出,你可以在頁面Code page identifiers查找的其他代碼頁標識符。

+1

謝謝,這非常有用!但ISO- *代碼頁號對我來說不起作用。在[代碼頁標識符](https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756%28v=vs.85%29.aspx)中聲明'iso-8859-1'具有'28591'和'ISO-8859-2'具有'28592'。 –

+0

非常感謝!我已更正了我的答案,並向您找到的頁面添加了超鏈接。 – MBu