Функция utf8_urldecode($str). Кириллица в json_encode, преобразование. php

Функция json_encode кириллицу utf-8 кодирует в виде \u.... Как ее заставить кодировать символы «как есть»? Функция utf8_urldecode($str). Кириллица в json_encode, преобразование. php

Функция utf8_urldecode($str). Кириллица в json_encode

» » Сообщение:

Функция utf8_urldecode($str). Кириллица в json_encode
Функция utf8_urldecode($str). Кириллица в json_encode
Код: Выделить всё Развернуть
function utf8_urldecode($str) {
    $str = preg_replace('/\\\\u([a-f0-9]{4})/i',"&#x\\1;", urldecode($str));
    return html_entity_decode($str, null, 'UTF-8');
}

Вармант №2

Код: Выделить всё Развернуть
function normJsonStr($str){
    $str = preg_replace_callback('/\\\\u([a-f0-9]{4})/i', create_function('$m', 'return chr(hexdec($m[1])-1072+224);'), $str);
    return iconv('cp1251', 'utf-8', $str);
}

- почему-то не корректно обрабатывает «ё»...
не стал докапываться “почему”..

Для чего это:

Код: Выделить всё Развернуть
$ar = array(
   '1'=>'Россия',
   '2'=>'Китай',
   '3'=>'Япония',
);
echo json_encode($ar, true);
// {"1":"\u0420\u043e\u0441\u0441\u0438\u044f","2":"\u041a\u0438\u0442\u0430\u0439","3":"\u042f\u043f\u043e\u043d\u0438\u044f"}

echo utf8_urldecode(json_encode($ar, true));
// {"1":"Россия","2":"Китай","3":"Япония"}



Похожие темыКомментарии ПросмотрыПоследнее сообщение
1984Функция преобразование HTML кода в ...
Сообщение от: Admin
0220Функция перевода метки timestamp в ...
Сообщение от: Admin
0316Функция function cleanFileName($fil...
Сообщение от: Admin
0307Функция seo_key_link($key)
Сообщение от: Admin
01427php pathinfo кириллица + utf-8. set...
Сообщение от: Admin