2009-09-02 1 views
1

В настоящее время в моем приложении данные, закодированные utf8, испорчены внутренней кодировкой PHP.Как сделать внутреннее кодирование обработки изменено на UTF8 в PHP?

Как сделать его совместимым с utf8?

EDIT: Чтобы показать примеры, скажите, пожалуйста, как вывести текущую внутреннюю кодировку в PHP?

В php.ini я нашел следующее:

default_charset = "iso-8859-1" 

Это означает Latin1.

Как изменить его на utf8, скажем, какая версия uto8 iso?

+0

Не могли бы вы рассказать о некоторых примерах? – rogeriopvl

ответ

4

Изменить его:

default_charset = "UTF-8"

Там нет версии ISO из UTF-8.

Вам нужно будет уточнить детали, поскольку кодирование может быть искажено во многих разных областях вашего приложения PHP. Общие проблемные области:

Сохранение и извлечение из БД: Кодировка базы данных должна же, как и строки, посланных к нему из PHP, или вы должны преобразовать строки в кодировке БД.

один байт строковые функции PHP4 в: функции PHP, такие как STRLEN(), str_replace() не дают правильные результаты на мультибайтных кодировках, таких как UTF-8, так как они работают на отдельных байтов.

Кодирование страницы: Убедитесь, что браузеру известно, что вы отправляете его UTF-8.

+0

Не utf-8 так же, как iso-10646-1? Для «однобайтовых строковых функций PHP4» вы подразумеваете замену всех этих строковых функций на функции mb_? – omg

+0

iso-10646-1, не знал этого. Однако я бы не установил конфигурацию iso-10646-1. Да, используйте mb_functions для PHP4. PHP5 имеет встроенную поддержку UTF-8. – bucabay

+0

Для PHP4 см .: http://www.phpwact.org/php/i18n/utf-8 – bucabay

0

Вы можете изменить кодировку символов в файле php. Для изменения кодировки на php-странице используйте следующую функцию.

$new_value = htmlentities('$old_value',ENT_COMPAT, "UTF-8"); 

, а также вы можете добавить следующее в главном разделе HTML

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

Я надеюсь, что это поможет решить вашу проблему.