2015-02-23 2 views
0

В конечном итоге у меня есть база данных MySQL, к которой я подключаюсь, но, ради ясности, я воспроизвел проблему только с помощью командной строки Windows. Просто запустите эту команду:PHP: Акцентированные символы в командной строке Windows

php -r "echo 'á' . PHP_EOL;" 

И выход заканчивает тем, что «ß», а не «á», как я бы ожидать. Я уверен, что это какая-то проблема с кодировкой, но PHP не является моим «родным» языком, и я действительно смущен тем, что здесь происходит.

Спасибо за любое разъяснение, которое вы все можете дать.

PHP Версия: 5.5.11

+0

Что кодировка файла PHP? Это, скорее всего, многобайтовый/частичный символ и нуждается в кодировке UTF8. Вот рабочий [пример] (https://eval.in/292096) – Darren

+3

Файл PHP имеет другую кодировку, чем командную строку Windows. Нет дубликатов, но связанных: [Какая кодировка/кодовая страница используется cmd.exe] (http://stackoverflow.com/questions/1259084/what-encoding-code-page-is-cmd-exe-using) – GolezTrol

+0

никаких проблем здесь .'php -r "echo 'á'. PHP_EOL;" 'Я получил' '' –

ответ

1

В командной строке Windows, команда "CHCP" управляет "кодовой страницы". Предполагается, что chcp 65001 предоставит utf8, но, похоже, также требуется специальная кодировка. Чтобы установить шрифт в окне консоли: Щелкните правой кнопкой мыши заголовок окна → Свойства → Шрифт → выберите Lucida Console.

Другие вопросы набора символов (в основном относящиеся к MySQL) обсуждаются в http://mysql.rjweb.org/doc.php/charcoll

Смежные вопросы