php gbk json_encode,php中json_encode处理gbk与gb2312中文乱码问题的解决方法
这篇文章主要介绍了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中文乱码问题的解决方法相关推荐
- jquery.ajax的url中传递中文乱码问题的解决方法
jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...
- eclipse中生成的html存在中文乱码问题的解决方法
eclipse中生成的html存在中文乱码问题的解决方法 参考文章: (1)eclipse中生成的html存在中文乱码问题的解决方法 (2)https://www.cnblogs.com/bug-hu ...
- SSM中jsp向后台Controller传值中文乱码的奇葩解决!!!
场景 进行简单的SSM整合时,jsp提交用户名到后台Controller时,插入数据时显示中文乱码. 然后,log4j配置输出sql语句,看到sql语句执行插入时,值就已经是乱码了. 关于log4j配 ...
- Meter应用中对于中文乱码的主要解决方法(转)
SampleResult中的中文乱码解决方法 对jmeter.properties进行设置,从jmeter.properties配置文件中可以找到如下行: # The encoding to be u ...
- java web中的中文乱码问题和解决方法
开发过程中可能会遇到页面中的中文显示为乱码无法正常查看,出现乱码的原因很多,以下举例并提供解决方法 一.HTML页面设置的编码与页面文件格式的编码不一致 检查方法:1.查看文件的编码格式 用记事本打开 ...
- php json urlencode,php json_encode url链接出现双本义字符‘\\’和中文被编码的处理方法...
在PHP开发中 json_encode方法利用的频率还是蛮高的. 当数据中出现中文是,通过json_encode后,中文被编码了,不是显示的原中文字符. 可能经过urlencode编码后,在利用jso ...
- Windows下在Django中创建项目时ImportError: No module named django.core解决方法
Windows下在Django中创建项目时ImportError: No module named django.core解决方法 今天在对照<Python编程:从入门到实践>学## 标题 ...
- Linux 中ifconfig和ip addr命令查看不到ip解决方法
Linux 中ifconfig和ip addr命令查看不到ip解决方法 参考文章: (1)Linux 中ifconfig和ip addr命令查看不到ip解决方法 (2)https://www.cnbl ...
- 解决JS在url中传递参数时参数包含中文乱码的问题
解决JS在url中传递参数时参数包含中文乱码的问题 参考文章: (1)解决JS在url中传递参数时参数包含中文乱码的问题 (2)https://www.cnblogs.com/xushengguan/ ...
最新文章
- 《玩转git三剑客》笔记
- 北邮高级语言设计基于java期末_北邮《高级语言程序设计》第三次阶段作业带答案...
- 安装jenkins时出现 No such plugin: cloudbees-folder的解决办法
- python金融数据怎么获取_class类怎样在python中获取金融数据?
- PHP操作redis部分命令
- php 环境搭建 -- 命令配置
- ios 后台唤醒应用_iOS 前后台机制以及后台唤醒机制【个人学习】
- 微信表白神秘代码!快发给ta!(学习资料)
- Struts1的工作流程
- 论文解读:基于图神经网络与蛋白质接触图的药靶亲和力预测(一)2021SC@SDUSC
- ins无法发帖_instagram发完图片就没了_ins发不了照片_解决方法
- iTunes 给iPhone制作铃声
- ae制作小球轨迹运动_视频剪辑教程:AE动画教程,如何创建一个运动的小球
- 选文字游戏 一个根据颜色来选择对应文字的小游戏
- MAC地址是怎么保证全球唯一的
- Win11系统电脑硬盘分区方法教程
- av_opt_set函数族详解
- 最新UE下载地址和可使用注册码(公布)
- JavaWeb开发与代码的编写(二十四)
- 【设计模式】之抽象工厂模式
热门文章
- python 创建二维list,Python创建二维数组(关于list的一个小坑)
- linux 超大文件编辑,Linux 修改打开最大文件数
- HttpClient4.x之Post请求示例
- Maven新建项目的JDK版本类型问题
- 怎么禁用html5,如何禁用HTML5视频标签?
- (转载)python调用shell命令之os 、commands、subprocess
- 使用Travis CI自动部署Hexo博客
- java web 中 读取windows图标并显示
- ios下fixed回复框bug的解决方案
- Comet4J推技术在SSHE三大框架中应用-linux下亲测可用