@apacho228

Как раскодировать букву «ё»?

Есть json файл с текстом где есть буква "ё":
[{
"id": 25,
"pid": "0CjqYfx3NU1AghsPVoGFullXwl4umV",
"message": "Одно лишь ё - это безумие!"
}]


Функция для декодирования json в utf-8:
function normJsonStr($str) {
		$pattern = "/\\\\u([a-f0-9]{4})/i";
		$callback = function ($m) {
	        return chr(hexdec($m[1])-1072+224);
	    };
	    $str = preg_replace_callback($pattern, $callback, $str);
	    return iconv('CP1251', 'UTF-8', $str);
	}


В итоге получаю это:
[{
"id": 25,
"pid": "0CjqYfx3NU1AghsPVoGFullXwl4umV",
"message": "Одно лишь - это безумие!"
}]


Вывожу все таким способом:
echo normJsonStr(json_encode($json));

Нужно чтобы ё было как ё :)
  • Вопрос задан
  • 185 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А зачем нужен весь этот изврат?
$data = [[
    "id" => 25,
    "pid" => "0CjqYfx3NU1AghsPVoGFullXwl4umV",
    "message" => "Одно лишь ё - это безумие!"
]];
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
/*
[
    {
        "id": 25,
        "pid": "0CjqYfx3NU1AghsPVoGFullXwl4umV",
        "message": "Одно лишь ё - это безумие!"
    }
]
*/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы