php json decode中文乱码怎么办

php json decode乱码的解决办法:首先在进行JSON处理前,把字符转为UTF8形式;然后在后台PHP页面中使用“json_encode”将PHP中的array数组转为JSON字符串即可。

php json decode中文乱码怎么办

PHP json_encode中文乱码解决方法

相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题。JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作为后台交互,容易出现中文乱码的问题。

JSON和js一样,对于客户端的字符都是以UTF8的形式进行处理的,也就是说,使用JSON作为提交和接收的数据格式时字符都采用UTF8编码处理,当我们的页面编码和数据库编码不是采用UTF8的时候,就极容易出现中文乱码的问题。解决办法自然是在用js或者PHP处理JSON数据的时候都采用UTF8的形式。

 

立即学习“PHP免费学习笔记(深入)”;

  PHP5.2或以上的版本把json_encode作为内置函数来用,给网站制作者带来了很大的方便,但是我们必须注意到json_encode只支持UTF8编码的字符,否则,中文乱码或者空值就出现了。

解决办法分为以下两个步骤。

Step1

保证在使用JSON处理的时候字符是以UTF8编码的。具体我们可以把数据库编码和页面编码都改为UTF8。当然喜欢用gbk编码的话,可以在进行JSON处理前,把字符转为UTF8形式。在PHP中有如下方法:

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;


登录后复制

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

Step2

 后台PHP页面(页面编码为UTF-8或者已经把字符转为UTF-8)使用json_encode将PHP中的array数组转为JSON字符串。例如:

'中文字符串','value'=>'test');      echo json_encode($testJSON);  ?>

登录后复制

查看输出结果为:

{“name”:”u4e2du6587u5b57u7b26u4e32″,”value”:”test”}

登录后复制

可见即使用UTF8编码的字符,使用json_encode也出现了中文乱码。解决办法是在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:

 

立即学习“PHP免费学习笔记(深入)”;

'中文字符串','value'=>'test');      //echo json_encode($testJSON);      foreach ( $testJSON as $key => $value ) {          $testJSON[$key] = urlencode ( $value );      }      echo urldecode ( json_encode ( $testJSON ) );  ?>

登录后复制

查看输出结果为:

 

立即学习“PHP免费学习笔记(深入)”;

{“name”:”中文字符串”,”value”:”test”}

登录后复制

到此,成功地输出了中文字符。随意使用json_encode吧。这样子在PHP后台输出的JSON字符串在前台javascript中Ajax接收后eval出来也不会出现中文乱码,因为js在处理JSON格式数据是也是以UTF8的形式进行的,与PHP类似,故接收PHP页面的JSON字符串不会出现问题。

推荐:《PHP教程》

以上就是php json decode中文乱码怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2134009.html

(0)
上一篇 2025年2月24日 23:52:48
下一篇 2025年2月18日 09:23:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何修改php网站源代码?

    修改php网站源代码的方法:首先安装【SublimeText3_ha】软件,并运行相应版本;然后打开源码所在文件夹;接着选中所要编辑的源码文件;最后编辑代码并保存即可。 修改php网站源代码的方法: 1、下载解压SublimeText3_h…

    2025年2月24日 编程技术
    200
  • php去掉key的方法详解

    在PHP中可以使用“array_values”函数将key去掉,该函数的语法是“array_values(array)”,其中参数array规定数组,返回值是包含数组中所有的值的数组。 php去掉key的方法 在PHP中可以使用array_…

    2025年2月24日
    200
  • php字符串如何转换对象

    php字符串转换对象的方法:首先定义一个json字符串;然后在“index.php”中,输入代码“print_r(json_decode($a));”;最后打印出这个字符串转换的json对象即可。 json_encode(),用于字符串或数…

    2025年2月24日 编程技术
    200
  • php页面上如何显示错误?

    php页面上显示错误的方法:首先需要在【php.ini】文件中配置【error_reporting】指令,代码为【error_reporting = E_ALL】;然后php错误机制将打印出所有出错信息即可。 php页面上显示错误的方法: …

    2025年2月24日
    200
  • php显示错误提示如何取消?

    php显示错误提示取消的方法:1、在php配置文件【php.ini】中配置【error_reporting】指令代码;2、在php文件的开始处加入【error_reporting(0)】;3、在可能出现错误的动作的开始处加上【@】符号。 p…

    2025年2月24日
    200
  • php网站不显示,无法访问怎么办?

    php网站不显示,无法访问的解决办法:1、访问出现404错误,程序丢失或被删除,需重新部署程序;2、访问出现500错误,重命名屏蔽或删除【.htaccess】文件;3、访问出现403错误,在被封ip列表中删除当前访问网络的ip。 php网站…

    2025年2月24日
    200
  • php下mysql中文乱码怎么办?

    php下mysql中文乱码的解决办法:首先创建数据库及表时设置字符集;然后设置MySQL的【my.ini】文件,分别在标签client和mysqld添加语句【character_set_server=utf8】。 php下mysql中文乱码…

    2025年2月24日 编程技术
    200
  • php源码的使用方法是什么?

    php源码的使用方法是:首先安装phpnow环境套件包;然后把所有的源码复制到套件安装目录下的htdocs文件夹里;最后导入数据库,并确定数据库连接参数如密码等是正确的即可。 php源码的使用方法是: PHP程序都要用MYSQL,如果没有M…

    2025年2月24日
    200
  • php数据乱码怎么办?

    php数据乱码的解决办法:1、PHP编码与MySQL编码一致;2、数据库建立时字符统一;3、表的字符集统一;4、header头发送字符集的编码要与数据库一致。 php数据乱码的解决办法: (1)HTML编码与MySQL编码一致; (2)PH…

    2025年2月24日
    200
  • jsp、php、asp的区别是什么?

    区别:1、容器不同,ASP一般是IIS,JSP一般是符合JEE规格的执行容器,PHP当然是其官方的解释器;2、ASP的动态代码语言主要是C#和VB,JSP则是Java,PHP当然是自定义的PHP语言;3、php完全免费。 jsp、php、a…

    2025年2月24日
    200

发表回复

登录后才能评论