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.