mac版Navicat如何设置重新打开后保持上次选项卡,在使用Navicat客户端时,我们可以设置重新打开客户端,保持上次打开的选项卡的,这个功能在哪里设置?我们来看一下。......
php怎么获取数据库转换成json数据乱码
在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客户端也没找到解决办法,这时在服务器端的处理方法就很管用。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
- 详细阅读
-
SQL Server 2005数据库恢复图文教程详细阅读
SQL Server 2005数据库恢复图文教程,相信很多的站长网站的时候需要用到SQLServer2005数据库,但是碰到一些问题没有办法恢复,本人专业学习的.et。平时也经常用到,希望能给大家带来......
2023-03-17 513 数据库
-
如何安装SQL Server 2008数据库(带完整图解)详细阅读
如何安装SQL Server 2008数据库(带完整图解),在电脑上安装SQLServer2008软件时,经常会遇到各种各样的问题,如何成功的安装SQLServer2008呢?提供完整过程和图片详解。......
2023-03-17 532 数据库