Я действительно новичок в работе с форматом JSON. Я многому учусь — и я застрял в UNICODE. У меня есть строка $str='Läuse';
если я посмотрю, какая кодировка эта строка я использую echo mb_detect_encoding($str);
результат UTF-8. Теперь я создаю массив и снова обнаруживаю, что кодировка UTF-8
$json_array = [
'test' => $str
];
echo mb_detect_encoding($json_array['test']);
Когда я повторяю массив с json_encode, он приходит к {"test":"L\u00e4use"}
вместо {"test":"Läuse"}
После поиска и прочтения о php и unicode я все больше путаюсь.
Я узнал, что JSON_UNESCAPED_UNICODE будет выводить мой код json_enco, как я хочу.
У меня вопрос, я делаю что-то неправильно, что я должен использовать JSON_UNESCAPED_UNICODE? Я использую неправильную кодировку?
Надеюсь, вы можете помочь мне с этим
PHP по умолчанию выводит JSON, совместимый с ASCII, который вряд ли будет искажен ошибками кодирования (хотя это происходит за счет читабельности и некоторых байтов).
Вы не делаете ничего плохого. JSON_UNESCAPED_UNICODE
просто выключен по умолчанию.
Других решений пока нет …