API应该返回带有中文的json
格式,但是当我调用API时,我得到了所有这样的中文字符:
[{ “TXT”:“\ r \ n \ u7533 \ u8bf7 \ u4eba \ u9655 \ u897f \ u5e7f \ u836f \ u5eb7 \ u5065 \ u533b \ u836f \ u6709 \ u9650 \ u516c \ u53f8 \ u56e0 \ u9057 \ u5931 \ u4e0a \ u6d77 \ u6d66 \ u4e1c \ u53d1 \ u5c55 \ u94f6 \ u884c \ u80a1 \ u4efd \ u6709 \ u9650 \ u516c \ u53f8 \ u5b9d \ u9e21 \ u652f \ u884c \ u7b7e \ u53d1 \ u7684 \ u7968 \ u53f7 \ u4e3a3100005122723877 \ u94f6 \ u884c \ u627f \ u5151 \ u6c47 \ u7968 \ u4e00 \ u5f20 \ uff08 \ u80cc \ u4e66 \ u53d6 \ u5f97 \ uff09 \ uff0c \ u51fa \ u7968 \ u4eba \ u5b9d \ u9e21 \ u5e02 \ u5929 \ u5b89 \ u5de5 \ u8d38 \ u6709 \ u9650 \ u516c \ u53f8 \ uff0c \ u51fa \ u7968 \ u65e5 \ u671f2014 \ u5e742 \ u670819 \ u65e5 \ uff0c \ u5230 \ u671f \ u65e5 \ u671f2014 \ u5e748 \ u670819 \ u65e5 \ uff0c \ u6536 \ u6b3e \ u4eba \ u4e3a \ u9655 \ u897f \ u4e5d \ u8bda \ u7164 \ u4e1a \ u53d1 \ u5c55 \ u6709 \ u9650 \ u516c \ u53f8 \ uff0c \ u5411 \ u672c \ u9662 \ u7533 \ u8bf7 \ u516c \ u793a \ u50ac \ u544a \ uff0c \ u672c \ u9662 \ u51b3 \ u5b9a \ u53d7 \ u7406 \ uff0c \ u73b0 \ u4f9d \ u6cd5 \ u4e88 \ u4ee5 \ u516c \ u544a \ u3002 \ u81ea \ u516c \ u544a \ u4e4b \ u65e5 \ u8d7760 \ u65e5 \ u5185 \ uff0c \ u5229 \ u5bb3 \ u5173 \ u7cfb \ u4eba \ u5e94 \ u5411 \ u672c \ u9662 \ u7533 \ u62a5 \ u6743 \ u5229 \ uff0c \ u5c4a \ u65f6 \ u65e0 \ u4eba \ u7533 \ U62 A5 \ u6743 \ u5229 \ uff0c \ u672c \ u9662 \ u5c06 \ u4f9d \ u6cd5 \ u4f5c \ u51fa \ u5224 \ u51b3 \ uff0c \ u5ba3 \ u544a \ u4e0a \ u8ff0 \ u7968 \ u636e \ u65e0 \ u6548 \ u3002 \ u5728 \ u516c \ u793a \ u50ac \ u544a \ u671f \ u95f4 \ uff0c \ u8f6c \ u8ba9 \ u8be5 \ u7968 \ u636e \ u6743 \ u5229 \ u7684 \ u884c \ u4e3a \ u65e0 \ u6548 \ u3002" , “报纸”:“\ u4e2d \ u56fd \ u6cd5 \ u9662 \ u7f51" , “dtepublished”: “2014年3月20日”, “dtecreated”:“2014年3月25日 11点29分14" 秒}]
我尝试使用 CI_Controller 直接查询数据库,并以正确的格式显示结果。所以我相信这是json的问题。
我在数据库和前端使用UTF-8
,我该如何解决这个问题。
答案 0 :(得分:0)
这是正常行为。所有特殊字符都将被编码,因此不会搞砸。在客户端使用JSON.parse(json);
恢复中文字符。
请查看:json_encode (PHP),例如JSON.parse (JS, Mozilla Firefox)
修改强>
如果要在PHP中解码json,请使用json_decode
答案 1 :(得分:0)
我知道这是一个老问题,但我遇到了同样的问题,但是用西班牙语重音词,Insted of using CI_Controller class,我在我的restful服务codeigniter-restserver上使用Rest_Controller类。导致我的代码出现问题的原因是我直接在响应中返回带有特殊字符的字符串,如下所示:
public function users_get()
{
$this->response('string with special character such as animación', REST_Controller::HTTP_OK);
}
这导致字符串作为unicode返回。相反,我将响应包装到一个数组中,如下所示:
public function users_get()
{
$data["message"] = 'string with special character such as animación';
$this->response($data, REST_Controller::HTTP_OK);
}
在此之前,我确保将我的charset设置为config.php文件中的$ config ['charset'] ='UTF-8'。这解决了我的特殊字符/重音词问题。希望这可能有用。