Как я могу преобразовать Unicode в utf8?

#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');
 

Онлайн-демонстрация