我最近将一个项目从laravel5.5升级到5.6,我有一些编码字符,比如“以前没有过”。如果我再次降级到laravel5.5,保持一切不变(只需降级几个包以使其兼容),字符将按预期显示。
我已经检查了文档,它在5.5和5.6中提到了{{}}和{!!!!}:https://laravel.com/docs/5.6/blade#displaying-数据
数据库连接被设置为使用utf8mb4作为字符集,utf8mb4\u unicode\u ci作为排序规则。
你知道为什么这会发生在拉维5.6吗?一个(快速的)解决方案是用{!!!!}替换{{{}}}或者{html\u entity\u decode($text,ent\u quotes)}但是我觉得可以做一些更一般的事情。
1条答案
按热度按时间3bygqnnd1#
请阅读此处的升级指南:https://laravel.com/docs/5.6/upgrade
你问题的答案是
Blade > HTML Entity Encoding
.在你的
app/Providers/AppServiceProvider.php
,添加此代码Blade::withoutDoubleEncoding();
在启动功能中。以下是整个文件: