我有一个处理各种语言的PHP脚本。不幸的是,每当我尝试使用json_encode
时,任何Unicode输出都会转换为十六进制实体。这是预期的行为吗?有没有办法将输出转换成UTF-8字符?
下面是我看到的一个例子:
输入
echo $text;
输出
База данни грешка.
输入
json_encode($text);
输出
"\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430."
发布于 2013-05-11 22:46:11
从PHP/5.4.0开始,有一个名为JSON_UNESCAPED_UNICODE
的选项。看看这个:
https://php.net/function.json-encode
因此,您应该尝试:
json_encode( $text, JSON_UNESCAPED_UNICODE );
发布于 2018-09-26 01:11:14
您喜欢设置字符集和未转义的unicode
header('Content-Type: application/json;charset=utf-8');
json_encode($data,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
发布于 2018-05-04 05:45:18
一种解决方案是首先对数据进行编码,然后在同一文件中对其进行解码:
$string =json_encode($input, JSON_UNESCAPED_UNICODE) ;
echo $decoded = html_entity_decode( $string );
https://stackoverflow.com/questions/16498286
复制相似问题