Преобразование нечитаемых символов в символы Unicode

63
3

Когда я вызываю некоторые данные facebook с opengraph, я получаю несколько имен, которые выглядят так.

\ u0d94\u0db1\u0dca\u0dbd\u0dd2\u0dc3\u0dd2\u0db1\u0dca\u0d9c\u0dca\u0dbd\u0dd2\u0dc2\u0dca

Есть ли способ конвертировать их в читаемые символы юникода, используя PHP или Javascript? PHP более предпочтителен. благодаря

спросил(а) 2021-01-19T22:07:16+03:00 6 месяцев, 1 неделя назад
1
Решение
109

Использовать json_decode():

$str = '\u0d94\u0db1\u0dca\u0dbd\u0dd2';
echo json_decode('"'.$str.'"'); // ඔන්ලි

Пример кода

ответил(а) 2021-01-19T22:07:16+03:00 6 месяцев, 1 неделя назад
46

Следующий код позволяет декодировать символы, а также, если необходимо, повторно кодировать их

Код:

if (!function_exists('codepoint_encode')) {

function codepoint_encode($str) {
return substr(json_encode($str), 1, -1);
}

}

if (!function_exists('codepoint_decode')) {

function codepoint_decode($str) {
return json_decode(sprintf('"%s"', $str));
}

}

Как использовать:

header('Content-Type: text/html; charset=utf-8'); 

var_dump(codepoint_encode('ඔන්ලි'));
var_dump(codepoint_encode('සින්ග්ලිෂ්'));

var_dump(codepoint_decode('\u0d94\u0db1\u0dca\u0dbd\u0dd2'));
var_dump(codepoint_decode('\u0dc3\u0dd2\u0db1\u0dca\u0d9c\u0dca\u0dbd\u0dd2\u0dc2\u0dca'));

Выход:

string(30) "\u0d94\u0db1\u0dca\u0dbd\u0dd2"
string(60) "\u0dc3\u0dd2\u0db1\u0dca\u0d9c\u0dca\u0dbd\u0dd2\u0dc2\u0dca"
string(15) "ඔන්ලි"
string(30) "සින්ග්ලිෂ්"

ответил(а) 2021-01-19T22:07:16+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема