一、JSON处理中文遇到的问题
php5.2新增的json功能是非常受欢迎的,但是经过测试发现,json_encode对中文的处理是有问题的:
1.不能处理GB编码,所有的GB编码都会替换成空字符.
2.utf8编码的中文被编码成unicode编码
二、JSON中文问题的处理
现在我们来考虑一下PHP的JSON扩展无法处理中文的问题,基本的解决方案就是在服务器端进行json编码前先对中文进行rawurlencode转码,全部变为英文字符,然后对json编码后的字符串再用rawurldecode转换回中文即可。
总的来说,这些左转右转编码的方式效率都不会很高,特别是处理的字符串很多的时候,效率不敢恭维,我们还是需要寻找更快速的方式,或者最好是PHP的JSON扩展能够直接支持中文,那就最好了。
本文探讨了PHP 5.2中JSON扩展处理中文时存在的问题,包括不能正确处理GB编码及UTF-8编码的中文字符被转为Unicode。提出了通过使用rawurlencode与rawurldecode解决中文编码问题的方法,并讨论了效率问题。

被折叠的 条评论
为什么被折叠?



