我想把一个JSON对象转换成字符串。当我使用 json_encode
时,我得到了一个字符串,但是全部都是十六进制字母。我想将它转换为UTF-8编码,也就是说,我想看到字符。怎么做呢?
我使用json_encode
来存储包括阿拉伯字符在内的数据到MySQL字段中。
它会将阿拉伯字符以HEX形式存储在数据库中,例如:
u0644 u063...
这是不正确的。你必须确保将json_encode
包装在mysql_escape_string()
中。
这将确保数据以以下方式放入MySQL中:
\u0644\u063...
然后,当你使用json_decode
时,它将把HEX字符串转换为UTF-8,并正确输出。
json_encode()
传递一个选项:json_encode ( $value, JSON_UNESCAPED_UNICODE );
JSON_UNESCAPED_UNICODE
选项仅适用于PHP版本5.4.0及更高版本。你正在寻找的是函数json_decode
,它可以将JSON字符串转换为UTF8。
这里有一个阿拉伯语单词的例子。
$re = json_encode('لغة عربية');
echo $re ;
$dd = json_decode($re);
echo $dd ;
die;
它的输出结果为:
"\u0644\u063a\u0629 \u0639\u0631\u0628\u064a\u0629"
لغة عربية