Перекодирование символов \u041e\u0448\u0438 в читаемый вид

21 октября 2023
Тут показывается чуть другой вариант перекодирования, чем это описывалось в статье «Появились символы \u041e\u043a\u0440\u0448».
Текущий вариант не использует регулярные выражения.

Имеем исходную json-строку, которая находится в переменной $str_json:
{"code":"0146_validation_error","error":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438\n - \u041f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u0430: ph-39-1693226301 \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 \u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0441\u044f\u0446: 2023-10\n - \u041f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u0430: ph-60-1695499155 \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 \u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0441\u044f\u0446: 2023-10","detail":[],"nested":[{"code":"0180_duplicate_statistics","error":"\u041f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u0430: ph-39-1693226301 \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 \u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0441\u044f\u0446: 2023-10","detail":[],"nested":[]},{"code":"0180_duplicate_statistics","error":"\u041f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u0430: ph-60-1695499155 \u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 \u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0441\u044f\u0446: 2023-10","detail":[],"nested":[]}]}

Перекодируем и сохраним итоговую строку в переменную $str_json_normal:
$str_json_normal = html_entity_decode(str_replace('\u','&#x', $str_json), ENT_NOQUOTES,'utf-8');

На выходе $str_json_normal будет содержать:
{"code":"0146_validation_error","error":"Ошибка валидации\n - Продублирована статистика для креатива: ph-39-1693226301 и площадки: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 за данный месяц: 2023-10\n - Продублирована статистика для креатива: ph-60-1695499155 и площадки: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 за данный месяц: 2023-10","detail":[],"nested":[{"code":"0180_duplicate_statistics","error":"Продублирована статистика для креатива: ph-39-1693226301 и площадки: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 за данный месяц: 2023-10","detail":[],"nested":[]},{"code":"0180_duplicate_statistics","error":"Продублирована статистика для креатива: ph-60-1695499155 и площадки: b78cf2bc-ebfa-4861-91c1-b626cc8d0034 за данный месяц: 2023-10","detail":[],"nested":[]}]}