В конечном итоге у меня есть база данных MySQL, к которой я подключаюсь, но для ясности я воспроизвел эту проблему только с помощью командной строки Windows. Просто запустите эту команду:
php -r "echo 'á' . PHP_EOL;"
И выход заканчивается " ß ", а не " á ", как я ожидал. Я уверен, что это какая-то проблема с кодировкой, но PHP не является моим "родным" языком, и я действительно смущен тем, что здесь происходит.
Спасибо за любое разъяснение, которое вы все можете дать.
Версия PHP: 5.5.11
В командной строке Windows команда "chcp" управляет "кодовой страницей". chcp 65001
предоставит utf8, но, похоже, также требуется специальная кодировка. Чтобы установить шрифт в окне консоли: Щелкните правой кнопкой мыши заголовок окна → Свойства → Шрифт → выберите Lucida Console.
Дополнительные проблемы с набором символов (в основном связанные с MySQL) обсуждаются в http://mysql.rjweb.org/doc.php/charcoll