
1 anewg Sep 22, 2014 5.4 之后 echo json_encode("中文", JSON_UNESCAPED_UNICODE); 5.4 之前 echo json_encode(urlencode("中文"));接收端 json_decode 后再 urldecode |
4 GPU OP |
5 iyaozhen Sep 22, 2014 其实没关系的,接收的时候php_decode会把编码还原。 js我用jquery接收,不用任何处理data.msg直接获取就行。 一楼说的php5.4之后的JSON_UNESCAPED_UNICODE参数可以直接输出中文。 |
6 zakokun Sep 22, 2014 via iPad 先把中文urlencode一下,处理完以后再转回来urldecode |
9 bombless Sep 23, 2014 我还以为是指读不出来unicode编码呢… 这种编码算是一种惯例了,不明白为啥要改 |
10 tmkook PRO function jsonEncode($arr){ $json = json_encode($arr); return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $json); } 放出我的必杀技!!! |
14 Actrace Sep 24, 2014 一个比较容易懂的做法是先把数组内的元素都用urlencode处理成不需要转换的字符串,然后生成JSON字符串后再用urldecode来对整个JSON字符串进行解码(中文等将被还原),类似于金属提纯. 不过看了10楼的做法,感觉10楼效率上会有很大的优势,毕竟是正则替换,而且相对于上面提出的方案少了一个转换的流程. |