我有关于编码字符集的问题,事实是,当我在本地测试我的网站时(MAMP PHP 5.5.3) 一切正常,我的JSON对象返回没有任何问题。 但是在使用dreamhost(PHP 5.4)托管的服务器的prod中它不起作用并且把这个错误抛给我
json_encode():参数中的UTF-8序列无效。
(Laravel
使用JsonResponse.php
方法在文件setData
上抛出此错误。
那么,如何在我的在线服务器上出错而不是在我当地的服务器上出错?
修改
这是我的回复标题:
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:1371
Content-Type:text/html; charset=UTF-8
Date:Thu, 02 Oct 2014 11:56:30 GMT
Expires:Thu, 02 Oct 2014 11:56:31 GMT
Keep-Alive:timeout=2, max=100
Server:Apache
Vary:Accept-Encoding,User-Agent
应该是:Content-Type:application/json; charset=utf-8
?
但我无法覆盖标题.. 这不起作用:
$response->header('Content-Type', 'application/json');
$response->header('charset', 'utf-8');
答案 0 :(得分:2)
我有setLocale('fr_FR')
现在我setLocale('fr_FR.UTF8')
它解决了问题!
对于任何AJAX请求,Laravel不再使用json_encode()抛出任何错误。我的strftime函数返回带有重音的每个字母的正确字符。