2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > php用json_encode编码后乱码 php json_encode()函数中文编码乱码解决方法_PHP教程

php用json_encode编码后乱码 php json_encode()函数中文编码乱码解决方法_PHP教程

时间:2023-05-02 01:07:31

相关推荐

php用json_encode编码后乱码 php json_encode()函数中文编码乱码解决方法_PHP教程

在我使用php json_encode()时,如果是英文或数字没一点问题,但是用到中文是居然出现不可识别的中文乱码了,下面看我解决json_encode中文乱码方法。

在网上找到一种解决方法:

代码如下

复制代码

后来请教了别人,还可以用base64编码,不过base64编码不可以放在URL中,百度是这样解释的:

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

不过我的数据是要通过POST发送的,并不在HTTP 的head中,而在message-body里,所以不受影响。

json_encode 只能接受utf-8格式的数据

例如:'胥'经过json_encode处理后变为'u80e5',最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode是不能达到目的的。

我的解决方法:先将类中的中文字段进行url编码(urlencode),然后再对对象进行json编码(jsonencode),最后url解码(urldecode)json,即最终的json,里面的中文依旧是那个中文!

测试代码如下:

代码如下

复制代码

程序输出结果:

代码如下

复制代码

{"item1":1,"item2":"u4e2du6587"}

{"item1":1,"item2":"中文"}

{"item1":1,"item2":"u4e2du6587"}

"u80e5"

/PHPjc/631284.true/PHPjc/631284.htmlTechArticle在我使用php json_encode()时,如果是英文或数字没一点问题,但是用到中文是居然出现不可识别的中文乱码了,下面看我解决json_encode中文乱码...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。