如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 350 编程语言
在jquery的使用中,json的数据往往是从后台取出来,然而,由服务器端生成的json数据,在前端调用时有时会遇到一些问题,而出现乱码则属于较为常见的现象。本文将通过实例与大家分享一下php生成json数据为乱码的处理方法。
php生成json数据为乱码的处理方法一
先看看下面这段由php生成的json字符串:
"u4e2du56fd"就是一段乱码,我们现在的目标是把这段乱码变成可读字符串。
通过测试,可以采用这样的方法解决问题:在php生成json的程序中,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。
下面为两个处理函数,可以直接调用:
通过这样处理后,"u4e2du56fd"这段乱码就会变成了"中国"的可读字符了。
php实现的另外一种解决方法
该方法跟上面的方法类似,也是先urlencode (),再urldecode()来处理。
参考如下实例
在客户端处理json乱码的方法
有人认为,json_encode()输出的是标准的json对象,那个不叫乱码。我觉得也有道理,处理这种编码应该可以在客户端实现,而不需要在服务器处理。
如下便是在客户端的处理方法。
如果是ajax,直接
在客户端,
弹出的不会是乱码的。如果觉得eval函数不安全,可以使用$.getJSON( );,如果选择了jquery库的话。
还有,使用这种方法要注意的一点是,如果数据源还有特殊符号,比如",,客户端使用eval解析会出现问题。
相关意见
echo json_encode($var); 输出的是标准的json字符串,中文本来就是被转换过的,不是什么乱码。
如果项目编码不是utf8,直接使用json_encode转换出来的中文会变成NULL的,urlencode后就不存在这个问题了。
生成json字符串的时候只能使用utf-8。不过可以用下面这个函数先实现utf8数组转码然后在直接使用json_encode():
如果客户端是用js写,确实没什么必要在php服务器端处理字符串问题。但是我最近在用java的intent链接一个php的url返回数据,一直是转化后的编码,java客户端也没找到解决办法,这时在服务器端的处理方法就很管用。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 350 编程语言
web图表开发工具FineReport:[11]连续分组,数据库表数据是按照时间先后录入的,查询的时候希望按照时间先后,某个字段连续相同的话就合并起来显示,这样的报表可以通过相邻连续分组来实现。......
2023-03-17 574 编程语言