本帖最后由 xtjsxtj 于 2015-04-09 21:50:26 编辑按网上大部分说法是先将汉字urlencode,json_encode后再urldecode
这样,有个问题是,假如原来: $arr = array ('a'=>urlencode('脚本,之家')); //简体中文BGK编码 echo urldecode(json_encode($arr)); 则结果为{"a": "脚本,之家"} 这是一个非法的json串,json_decode是解不开的 大家是如何这样解决这个问题的 是不是都转换成了utf8编码了 假如这个json串还要做url请求的参数,还要urlencode,这个又要怎样处理呢? 按utf8 先json_encode,然后再对整个json串做urlencode吗? ------解决思路---------------------- 首先 gbk 的 {"a": "脚本,之家"} 并不是非法的 json 串 JSON 从来就没有要求过值域的字符集 至于不能被 json_decode 解开,是因为函数开发者认为 php 收到的 json 串都是由 XMLHttpRequest 发来的,而 XMLHttpRequest 总是以 utf-8 编码发送数据。因此就没有不要再在函数中辨别字符集了 从而造成 php 的 json 函数只支持 utf-8 的情况 既然已经这样了,那你就得去适应这个环境 文章来源:https://www./faq/206856.html |
|