Laravel参数中的UTF-8序列无效

时间:2014-09-02 15:22:47

标签: php json laravel utf-8 mamp

我有关于编码字符集的问题,事实是,当我在本地测试我的网站时(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');

1 个答案:

答案 0 :(得分:2)

我有setLocale('fr_FR')现在我setLocale('fr_FR.UTF8')它解决了问题!

对于任何AJAX请求,Laravel不再使用json_encode()抛出任何错误。我的strftime函数返回带有重音的每个字母的正确字符。