这篇文章主要介绍了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,需要的朋友可以参考下

本文讲述了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,具体方法如下:

1.json_encode()中文在gbk/gb2312中对中文返回为null

$arr=array(

array(

'catid'=>'4',

'catname'=>'www.adminn.cn',

'meta_title'=>'php粉丝网'

)

);

echojson_encode($arr);

运行结果:

[{"catid":"4","catname":"www.adminn.cn","meta_title":null}]

看一了吗"meta_title":null 他本来是有一个值的为"php粉丝网"了,这个我们查了一下原理是json_encode只支持uft-8编码,我们转换一下

$data="JSON中文";

$newData=iconv("GB2312″,"UTF-8//IGNORE",$data);

echo$newData;

//ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符都不会被保存。

//或是("GB2312″,"UTF-8″,$data);

?>

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

$testJSON=array('name'=>'中文字符串','value'=>'test');

echojson_encode($testJSON);

?>

查看输出结果为:

{"name":"u4e2du6587u5b57u7b26u4e32″,"value":"test"}

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

$testJSON=array('name'=>'中文字符串','value'=>'test');

//echo json_encode($testJSON);

foreach($testJSONas$key=>$value) {

$testJSON[$key] = urlencode ($value);

}

echourldecode ( json_encode ($testJSON) );

?>

查看输出结果为:

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

总结:json_encode函数只能处理uft8字符串,如果是中文估计是对字节处理不好,因为中文gbk与uft长度是不一样的,这个也不做深入介绍了。

php gbk json_encode,php中json_encode处理gbk与gb2312中文乱码问题的解决方法相关推荐

  1. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...

  2. eclipse中生成的html存在中文乱码问题的解决方法

    eclipse中生成的html存在中文乱码问题的解决方法 参考文章: (1)eclipse中生成的html存在中文乱码问题的解决方法 (2)https://www.cnblogs.com/bug-hu ...

  3. SSM中jsp向后台Controller传值中文乱码的奇葩解决!!!

    场景 进行简单的SSM整合时,jsp提交用户名到后台Controller时,插入数据时显示中文乱码. 然后,log4j配置输出sql语句,看到sql语句执行插入时,值就已经是乱码了. 关于log4j配 ...

  4. Meter应用中对于中文乱码的主要解决方法(转)

    SampleResult中的中文乱码解决方法 对jmeter.properties进行设置,从jmeter.properties配置文件中可以找到如下行: # The encoding to be u ...

  5. java web中的中文乱码问题和解决方法

    开发过程中可能会遇到页面中的中文显示为乱码无法正常查看,出现乱码的原因很多,以下举例并提供解决方法 一.HTML页面设置的编码与页面文件格式的编码不一致 检查方法:1.查看文件的编码格式 用记事本打开 ...

  6. php json urlencode,php json_encode url链接出现双本义字符‘\\’和中文被编码的处理方法...

    在PHP开发中 json_encode方法利用的频率还是蛮高的. 当数据中出现中文是,通过json_encode后,中文被编码了,不是显示的原中文字符. 可能经过urlencode编码后,在利用jso ...

  7. Windows下在Django中创建项目时ImportError: No module named django.core解决方法

    Windows下在Django中创建项目时ImportError: No module named django.core解决方法 今天在对照<Python编程:从入门到实践>学## 标题 ...

  8. Linux 中ifconfig和ip addr命令查看不到ip解决方法

    Linux 中ifconfig和ip addr命令查看不到ip解决方法 参考文章: (1)Linux 中ifconfig和ip addr命令查看不到ip解决方法 (2)https://www.cnbl ...

  9. 解决JS在url中传递参数时参数包含中文乱码的问题

    解决JS在url中传递参数时参数包含中文乱码的问题 参考文章: (1)解决JS在url中传递参数时参数包含中文乱码的问题 (2)https://www.cnblogs.com/xushengguan/ ...

最新文章

  1. 《玩转git三剑客》笔记
  2. 北邮高级语言设计基于java期末_北邮《高级语言程序设计》第三次阶段作业带答案...
  3. 安装jenkins时出现 No such plugin: cloudbees-folder的解决办法
  4. python金融数据怎么获取_class类怎样在python中获取金融数据?
  5. PHP操作redis部分命令
  6. php 环境搭建 -- 命令配置
  7. ios 后台唤醒应用_iOS 前后台机制以及后台唤醒机制【个人学习】
  8. 微信表白神秘代码!快发给ta!(学习资料)
  9. Struts1的工作流程
  10. 论文解读:基于图神经网络与蛋白质接触图的药靶亲和力预测(一)2021SC@SDUSC
  11. ins无法发帖_instagram发完图片就没了_ins发不了照片_解决方法
  12. iTunes 给iPhone制作铃声
  13. ae制作小球轨迹运动_视频剪辑教程:AE动画教程,如何创建一个运动的小球
  14. 选文字游戏 一个根据颜色来选择对应文字的小游戏
  15. MAC地址是怎么保证全球唯一的
  16. Win11系统电脑硬盘分区方法教程
  17. av_opt_set函数族详解
  18. 最新UE下载地址和可使用注册码(公布)
  19. JavaWeb开发与代码的编写(二十四)
  20. 【设计模式】之抽象工厂模式

热门文章

  1. python 创建二维list,Python创建二维数组(关于list的一个小坑)
  2. linux 超大文件编辑,Linux 修改打开最大文件数
  3. HttpClient4.x之Post请求示例
  4. Maven新建项目的JDK版本类型问题
  5. 怎么禁用html5,如何禁用HTML5视频标签?
  6. (转载)python调用shell命令之os 、commands、subprocess
  7. 使用Travis CI自动部署Hexo博客
  8. java web 中 读取windows图标并显示
  9. ios下fixed回复框bug的解决方案
  10. Comet4J推技术在SSHE三大框架中应用-linux下亲测可用