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

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