将unicode \ u序列(如\ u041a)转换为php中的普通utf-8文本

时间:2012-05-04 14:44:24

标签: php javascript utf-8 json

我有一个像这样的字符串 “\ u041a \ u043b \ u0443 \ u0431测试”;

它是由json_encode()解码的,原始字符串是俄语的“КлубTest”。 当我把它放到像

这样的js时

警告(“\ u041a \ u043b \ u0443 \ u0431测试”);

我得到正确的显示,就像在屏幕上一样。所以js 以某种方式将其正确地解码为正常视图。 问题是如何在php中执行相同的操作,是否有内置方法?

enter image description here


THE ANSWER IS:
$json_in = '{"testKey":"\u041a\u043b\u0443\u0431 Test"}';
$json_out = json_decode($json_in, true);
or
Convert  "\u041a\u043b\u0443\u0431" to  "Клуб" 
and perform html_entity_decode($str, null, 'UTF-8');

2 个答案:

答案 0 :(得分:5)

转换数据时,请使用JSON_UNESCAPED_UNICODE作为选项

echo json_encode($text, JSON_UNESCAPED_UNICODE);

答案 1 :(得分:1)

您可能希望HTML实体打印字符:

  • &安培;#1234;对于十进制代码
  • &安培;#x12a;对于十六进制代码