[日常] json_encode对中文和引号的处理差异研究
2018-06-22 05:36:52来源:未知 阅读 ()
json_encode()
1.默认就是把所有 ASCII 可显示字符以外的统统转义为 Unicode
如果把那些字符转义为 Unicode 之后,无论文件编码是否一致,都不会出现乱码,因此中文转成Unicode编码是有好处的
2.对单引号和双引号的处理是有差异的,并且受数组键值包裹字符串的引号影响
3.json_encode(array(),JSON_FORCE_OBJECT));输出空的对象
json_encode(new stdClass());另一种方式
JSON_UNESCAPED_SLASHES 不要转义 /,例如很多url被转义
JSON_UNESCAPED_UNICODE 汉字不要编码成Unicode 字符
<?php var_dump(json_encode(array())); var_dump(json_encode(array(),JSON_FORCE_OBJECT)); var_dump(json_encode(new stdClass())); var_dump(json_encode(array('name'=>'陶士涵','point'=>100,'test'=>'/aaa \" \' \ aa '),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES)); var_dump(json_encode(array("name"=>"陶士涵","point"=>100,"test"=>"/aaa \" \' ' \ aa "),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES)); /** 输出 string(2) "[]" string(2) "{}" string(2) "{}" string(64) "{"name":"陶士涵","point":100,"test":"/aaa \\\" ' \\ aa\r\n"}" string(65) "{"name":"陶士涵","point":100,"test":"/aaa \" \\' ' \\ aa\r\n"}"
重点:
1.起到转义效果的反斜杠不会有变化,没起到转义效果的反斜杠会自动再被转义
2.数组外包裹内容的单引号不会影响输出,输出后都是包裹字符串的都是双引号,但是会影响第一点
4.出现错误时的处理,json_decode失败的问题:
var_dump(json_last_error());//打印出错信息
var_dump($b);
0 JSON_ERROR_NONE
1 JSON_ERROR_DEPTH
2 JSON_ERROR_STATE_MISMATCH
3 JSON_ERROR_CTRL_CHAR
4 JSON_ERROR_SYNTAX
5 JSON_ERROR_UTF8
6 JSON_ERROR_RECURSION
7 JSON_ERROR_INF_OR_NAN
8 JSON_ERROR_UNSUPPORTED_TYPE
当编码有问题时这样处理
$a=iconv("gbk", "utf-8//IGNORE", $a);
$b=json_decode($a,true);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- php判断是否为json格式的方法 2020-02-24
- PHP判断json格式是否正确的实现代码 2020-01-17
- php静态成员方法和静态的成员属性的使用方法 2019-12-14
- 详解php语言中使用json的技巧及json的实现代码 2019-12-08
- JSON在PHP中的应用介绍 2019-11-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash