在部署laravel网站(在本地正常运行)后,我遇到了问题。 有些文字编码不正确, 例如:Joël应该是Joël
一些信息:
并非所有视图都会受到影响,某些变量会在一个视图中正确呈现,并在另一个视图上损坏(这使我认为这不是mysql问题)
我的json响应不再起作用(格式错误的UTF-8字符,可能编码错误),这使我认为这一定是mysql问题...)
我已经尝试将其放入我的AppServiceProvider \Blade::setEchoFormat('e(utf8_encode(%s))');
我的strftime也不起作用,但是可以通过php的utf8_encode函数来解决,该函数无法与其他变量一起使用。 例如,如果$ c-> name给出Joël,则utf8_encode($ c-> name)也给出Joël
在config / database.php中,字符集设置为utf8mb4,协作设置为utf8mb4_unicode_ci
您有什么办法解决我的问题吗?
答案 0 :(得分:0)
只需在服务提供商AppServiceProvider中执行此操作,然后将其放入引导方法
Blade::setEchoFormat('e(utf8_encode(%s))');
通常使用UTF-8可以使生活变得简单。
从其他任何地方复制并粘贴到代码中时,请务必格外小心-基本上,请始终通过Notepad ++并将其转换为UTF-8(无BOM),然后再复制并粘贴到代码中。
然后确保您的所有视图(包括错误页面)都具有
<meta charset="UTF-8">
如果正在使用HTML4,则执行以下操作
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
希望这对您有帮助
答案 1 :(得分:0)
我找到了解决方法:
我使用
{!! htmlentities($variable, ENT_QUOTES, "UTF-8") !!}
但这不方便...
我尝试过:
Blade::setEchoFormat('e(htmlentities(%s,ENT_QUOTES,'UTF-8'))');
在AppServiceProvider中,但不能解决问题。
所以这是一个临时解决方案...