Переключите кодировку веб-сайта с ISO-8859-1 на UTF-8


Я пытаюсь преобразовать свою существующую веб-страницу PHP в кодировку UTF-8.

Для этого я сделал следующие вещи:

  1. указан UTF-8 в качестве кодировки в теге мета-контента в начале моей веб-страницы.
  2. измените набор символов по умолчанию на UTF-8 в php.ini.
  3. указан UTF-8 в качестве кодировки iconv в файле php.ini.
  4. указан UTF-8 в моем файле.htaccess с использованием: AddDefaultCharset UTF-8.

И все же после всего этого, когда я повторяю mb_internal_encoding(), он отображается как ISO-8859-1. Что я здесь упускаю? Я знаю, что мог бы использовать auto_prepend, чтобы прикрепить скрипт, который изменяет кодировку по умолчанию на UTF-8, но я просто пытаюсь понять, чего мне не хватает.

Спасибо

Author: justinl, 2009-11-23

2 answers

mb_internal_encoding() не влияет на вывод ваших сценариев как таковых, он влияет на кодировку по умолчанию при использовании многобайтовых строковых функций и преобразование входных данных POST и GET.

Просто установите с помощью

mbstring.internal_encoding='UTF-8'

В вашем файле php.ini или программно с помощью:

mb_internal_encoding('UTF-8');

Говоря о функциях mb_, вам нужно будет переписать свои сценарии, чтобы использовать их, например, mb_strlen() вместо strlen.() и т.д.

Также проверьте, какой тип содержимого HTTP заголовки выводятся, хотя, судя по тому, что вы сделали, все должно быть в порядке.

Если вы используете базу данных, вам также придется преобразовать ее и указать, что вы используете UTF-8 при подключении к ней.

 4
Author: Pete, 2009-11-22 22:37:31

В документации указано, что вы можете УСТАНОВИТЬ эту переменную с помощью

/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

Что должно избавить вас от вашей проблемы:)

 0
Author: ty812, 2009-11-22 22:24:35