今天在调用一个接口时,发现我传递给后台的数据中的中文莫名其妙的乱码了。。。一开始想着是不是我前台的调用方法不对,导致中文在传递的过程中出现了乱码。但是我发现接口中另一个字段使用中文就没有问题,无奈之下,本人只能打开phpstorm来看看后台的接口是什么情况,结果发现传递给后台的数据中文是正常显示的,直到后台的同事调用了json_encode这个方法后,中文就变成了一堆
/u****
开头的东西。上网一查,原来是这个方法的bug导致的。下面记录一下解决方法。
- 升级PHP到5.4, json_encode方法新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode.
<?php echo json_encode("中文", JSON_UNESCAPED_UNICODE); //"中文"
还有其他的方法,目前兴趣不大,如果后面有遇到,再过来补充一下。