#php #encoding #utf8mb4
#php #кодирование #utf8mb4
Вопрос:
У меня есть база данных, полная строк Unicode, и теперь мне нужна функция для их преобразования и отображения.
Это моя текущая строка:
u062fu0648u0646u0647 u0645u0646u2665u2665u2665u2665
И это ожидаемый результат:
دونه من♥️♥️♥️♥️
Комментарии:
1. измените тип данных вашего столбца на
Blob
в таблице базы данных, он должен показывать то, что вы ожидали2. @AlbertAkki На самом деле у меня нет доступа к базе данных, она готова, и я должен извлекать из нее значения.
3. затем установите заголовок php. например
<?php header('Content-Type: text/html; charset=utf-8'); ini_set("default_charset", "UTF-8"); mb_internal_encoding("UTF-8"); iconv_set_encoding("internal_encoding", "UTF-8"); iconv_set_encoding("output_encoding", "UTF-8"); ?>
, везде, где вы хотите показать результат4. @AlbertAkki только что пробовал, но бесполезно.
5. @ Hamidreza Noruzinejad, тогда я бы предложил внести изменения в таблицу базы данных. просто получите доступ к базе данных и измените тип данных
Ответ №1:
preg_replace_callback('/\\u([0-9a-fA-F]{4})/',
function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}, 'u062fu0648u0646u0647 u0645u0646u2665u2665u2665u2665');