Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Добавление контента на японском в БД

#кодировка


Есть сайт 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');

Комментариев нет:

Отправить комментарий