laravel5.6htmlspecialchars

9avjhtql  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我最近将一个项目从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)}但是我觉得可以做一些更一般的事情。

3bygqnnd

3bygqnnd1#

请阅读此处的升级指南:https://laravel.com/docs/5.6/upgrade
你问题的答案是 Blade > HTML Entity Encoding .
在你的 app/Providers/AppServiceProvider.php ,添加此代码 Blade::withoutDoubleEncoding(); 在启动功能中。以下是整个文件:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Blade::withoutDoubleEncoding();
    }
}

相关问题