$con->query("SET NAMES 'utf8'");
$con->query("SET CHARACTER SET utf8");
$con->query("SET SESSION collation_connection = 'utf8_unicode_ci'");
print_r(json_decode('[{"reportId":"1","title":"\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0447\u0435\u0442"}]', true))
Array
(
[0] => Array
(
[reportId] => 1
[title] => Первый отчет
)
)
print_r(json_decode('{"reportId":"1","title":"\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0447\u0435\u0442"}', true))
Array
(
[reportId] => 1
[title] => Первый отчет
)
function replace_unicode_escape_sequence($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}
function unicode_decode($str) {
return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $str);
}
echo unicode_decode("\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0447\u0435\u0442");
и теперь php страница возвращает это:
[{"reportId":"1","title":"\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0447\u0435\u0442"}]
json_encode($report, JSON_UNESCAPED_UNICODE)
, то на выходе будет читаемый тест.echo $report['title'];