набор символов cmd - PullRequest
       5

набор символов cmd

6 голосов
/ 27 сентября 2011
C:\Users\Kolink>php -r "echo 'é';"
Ú

C:\Users\Kolink>echo é
é

Как вы можете видеть, программа, выводящая é, приводит к Ú, но использование команды echo дает желаемый символ.

И можно ли настроить PHP (может быть какая-нибудь команда в начале скрипта) для вывода правильного символа?

1 Ответ

3 голосов
/ 22 марта 2012

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 в комментариях, вы можете найти идентификаторы других кодовых страниц в Идентификаторы кодовой страницы page.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...