json_encode中文乱码解决方法

2013-07-08 10:57:24来源:linuxToday作者:

JSON对于客户端的字符都是以UTF8的形式进行处理的,也就是说,使用JSON作为提交和接收的数据格式时字符都采用UTF8编码处理,当我们的页面编码和数据库编码不是采用UTF8的时候,就极容易出现中文乱码的问题。解决办法

JSON对于客户端的字符都是以UTF8的形式进行处理的,也就是说,使用JSON作为提交和接收的数据格式时字符都采用UTF8编码处理,当我们的页面编码和数据库编码不是采用UTF8的时候,就极容易出现中文乱码的问题。解决办法是在用PHP处理JSON数据时采用UTF8的形式。

PHP页面使用json_encode将PHP中的array数组转为JSON字符串。例如:

查看输出结果为:

{“name”:”u4e2du6587u5b57u7b26u4e32″,”value”:”test”}

可见用json_encode也出现了中文乱码。解决办法是在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:

查看输出结果为:

{“name”:”中文字符串”,”value”:”test”}

成功输出了中文字符。这样子在PHP后台输出的JSON字符串在前台javascript中Ajax接收后eval出来就不会出现中文乱码了。

关键词:json乱码

赞助商链接: