#кодировка
Есть сайт PHP/MySQL. При добавлении контента через админку на японском языке контент добавляется некорректно: вместо японских иероглифов - одни знаки ?. Английский и русский текст добавляется без проблем. Также в статических файлах (.php, .html) японский добавляется и отображается без проблем. В .htaccess есть: AddDefaultCharset UTF-8 В header-е есть: Что надо сделать, чтобы японский отображался корректно?
Ответы
Ответ 1
Для того чтобы использовать Японские символы (иероглифы) в БД MySql, надо использовать расширенную таблицу символов: UTF-8 (utf8mb4) [использует 1 - 4 байт] UTF-16 [использует 2 или 4 байта.] UTF-32 [используют фиксировано 4 байта] (Не ваш случай.. вы скорее всего используете php и html5, а стандарт HTML5 гласит, что «авторы не должны использовать UTF-32, поскольку алгоритмы определения кодировки, описанные в данной спецификации, не отличают его от UTF-16».) Вам идеально подойдет UTF-16! Здесь можно попробовать найти диапазон японских иероглифов в UTF-16 Символы кодовой таблицы UTF-8 (utf8mb4), UTF16, UTF32 доступны в MySQL 5.5 и выше. (подробнее в документации MySql) Если у вас MySQL 5.5 и выше, то можно выполнить следующие действия: 1) Сменить кодировку для таблицы БД, в которой вы собираетесь хранить такие символы 2) В коде HTML страницы добавить: или средствами php: header('Content-type: text/xml; charset=utf-16') 3) Сменить кодировку для чтения символов для запросов при помощи PHP: mysql_query('SET NAMES utf16 COLLATE utf16_general_ci');
Комментариев нет:
Отправить комментарий