кодировка — обновление PHP 5.6 делает UTF-8 не работающим

Недавно я обновил свое PHP-веб-пространство до 5.6 (с 5.5), и произошло нечто странное. Мой сайт неожиданно отображает символы UTF-8 неправильно, хотя я использую метатег <meta charset="utf-8"> и следующую строку в моем файле .htaccess AddDefaultCharset utf-8,

После вставки следующей строки в мой PHP-скрипт все снова заработало header('Content-Type: charset=utf-8');,

Это произошло как на моем веб-пространстве (где у меня нет доступа к файлу php.ini), так и на моем локальном сервере. Поскольку я также использую другие сценарии PHP, я не хочу вставлять header('Content-Type: charset=utf-8'); во все конфигурационные файлы …

Что может быть причиной?

3

Решение

Если вы не хотите использовать функцию header () в php, вы можете использовать meta тег HTML.

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

Пожалуйста, проверьте, помогает ли это.

0

Другие решения

Как я прочитал:

настройка php.ini default_charset изменилась в PHP 5.6 с пустого на UTF-8. Это может нарушить вывод HTML, если вы попытаетесь установить другую кодировку в заголовке HTML. Он также может нарушать функции, такие как htmlentities () и htmlspecialchars.

ЦСИ: https://www.saotn.org/php-56-default_charset-change-may-break-html-output/

В моем случае я использовал для установки кодировки по умолчанию UTF-8 с помощью функции php mb_http_output('UTF-8');хотя для PHP5.6 я удалил эту функцию, так как она казалась избыточной. Это сделало символы снова читаемыми.

0

По вопросам рекламы [email protected]