Помогите с Unicode кодами в php

R
На сайте с 13.06.2009
Offline
47
1951

Здравствуйте.

Если преобразовать массив в котором содержатся кирилические символы в json, то вся кирилица будет заменятся на unicode коды \u043e. Как преобразовать их в символы.

Т.е. функцией может кто поделится, а то как-то нечего подходящего найти не получилось :)

B
На сайте с 21.12.2009
Offline
28
#1

мм, json_decode, либо preg_replace с нужной регуляркой.

или вам надо уже на сайте в JS , или где?

Адский Кодер Разработка и аудит безопасности сайтов/скриптов(PHP+MySQL) (/ru/forum/530575)
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#2
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
R
На сайте с 13.06.2009
Offline
47
#3

Господи народ Вы что действительно думаете, что зная о том как получить из php массива json объект я не в курсе как получить обратно массив? Там же во всем расширение всего две функции.

Мне надо именно преобразовать Unicode коды обратно в символы.

[Удален]
#4

function convert_unicode($t, $to = 'windows-1251') {

$to = strtolower( $to );

if( $to == 'utf-8' ) {

return urldecode( $t );

} else {

if( function_exists( 'iconv' ) ) $t = iconv( "UTF-8", $to . "//IGNORE", $t );

else $t = "The library iconv is not supported by your server";

}

return urldecode( $t );

}

R
На сайте с 13.06.2009
Offline
47
#5
Tai89:
function convert_unicode($t, $to = 'windows-1251') {
$to = strtolower( $to );

if( $to == 'utf-8' ) {

return urldecode( $t );

} else {

if( function_exists( 'iconv' ) ) $t = iconv( "UTF-8", $to . "//IGNORE", $t );
else $t = "The library iconv is not supported by your server";

}

return urldecode( $t );
}

Совершено не то.

Вот например {"name":"\u041e\u0431\u0449\u0438\u0435"}. То есть все кирилические символы заменены на коды. Мне нужно чтобы json объект остался прежним, но это \u041e\u0431\u0449\u0438\u0435 было заменено на нормальное слово.

T0
На сайте с 27.11.2009
Offline
11
#6

<?php

# Для Windows-1251:
echo preg_replace('#\\\u([0-9A-F]{4})#se',
'iconv("UTF-16BE","Windows-1251",pack("H4","$1"))',
'\u0442\u0435\u0441\u0442');

# Для UTF-8:
echo preg_replace('#\\\u([0-9A-F]{4})#se',
'iconv("UTF-16BE","UTF-8",pack("H4","$1"))',
'\u0442\u0435\u0441\u0442');
?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий