C:\Users\Kolink>php -r "echo 'é';" Ú C:\Users\Kolink>echo é é
Как вы можете видеть, программа, выдающая é
приводит к Ú
, но с использованием команды 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 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 в комментариях, вы можете искать идентификаторы других кодовых страниц на странице идентификаторов страницы кода .