`json_encode不返回UTF8字符

时间:2014-04-14 17:46:29

标签: javascript php jquery ajax json

我有一个AJAX请求发送到PHP服务器,PHP将一个带有json_encode的数组返回给客户端。

数组是一个简单的2索引数组。

我从console.log()获得的是:

{"1":"\u00d9\u0081\u00db\u008c\u00d9\u0084\u00d8\u00af title \u00d9\u0086\u00d8\u00a8\u00d8\u00a7\u00db\u008c\u00d8\u00af \u00d8\u00ae\u00d8\u00a7\u00d9\u0084\u00db\u008c \u00d8\u00a8\u00d8\u00a7\u00d8\u00b4\u00d8\u00af.","0":"FAIL"}

我认为这是ASCII charset?我不知道,但我知道这不是波斯人的性格!!!!

这是我的PHP代码:

header ('Content-type: text/html; charset=utf-8');
            $message = $validator->messages();
            $response[1] = utf8_encode($message->first());
            $response[0] = FAIL;
            echo json_encode(($response));

虽然当我将响应设置为仅回显$message->first()而不是json object时,它就可以了,并且utf-8完全

1 个答案:

答案 0 :(得分:0)

我认为您的问题是您的PHP声称内容类型为text/html而不是application/json。如果您更改了类型,它将告诉浏览器它应该将内容解析为JSON,并且您将在AJAX处理程序中获得一个对象。