PHPAjaxJSON中文乱码各种问题解决办法-创新互联

1、GBK/GB2312通过php的json_encode函数汉字会输出null

//gbk编码
$gbk = '中文';
echo json_encode($gbk);//null

原因:因为json_encode只支持utf-8的编码,对于英文没有什么影响,但是对于中文就会有问题了。
解决办法:

目前创新互联已为上千余家的企业提供了网站建设、域名、雅安服务器托管绵阳服务器托管、企业网站设计、竹溪网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
 $gbk = urlencode('中文');
 echo urldecode(json_encode($gbk));//中文

并不是非得用urlencode编码,也可以用别的编码,例如base64_encode等等,大家可以多尝试一下

2、ajax调用后端gbk编码接口会出现乱码

原因:因为Ajax返回的数据默认的字符编码是utf-8

解决办法:  在后端,如php加上

header('Content-Type:text/html;charset=utf-8');//如果是json最好用Content-Type: application/json或text/plain

3、utf8编码的json_encode也会被编码,变成不可读的, 类似”\u***”的格式,Ajax调用也同样的问题
原因:json_encode对中文支持不好

解决办法:(1)可以参考第一种方法;(2)从PHP5.4开始,在json_encode中有了第二个参数,可以通过传入JSON_UNESCAPED_UNICODE解决,例如

echo json_encode('中文',JSON_UNESCAPED_UNICODE);//中文

推荐:采用UTF8编码,php尽量升级到5.4以上的版本

PS:如果有任何问题,欢迎提出

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:PHPAjaxJSON中文乱码各种问题解决办法-创新互联
转载源于:http://pwwzsj.com/article/dddghd.html