Laravel 5 charset не работает правильно на представлениях. Но он работает хорошо, когда я сбрасываю его с контроллера

Здесь я столкнулся с проблемой кодировки. Я разрабатываю приложение, которое использует базу данных SQL Server. База данных не была создана для этого приложения, она существует и работает очень хорошо. Я ничего не могу изменить в базе данных, потому что он слишком велик и используется многими другими приложениями.
Я закончил auth моего приложения laravel 5, поэтому я создам представление и покажу в этом представлении имя зарегистрированного пользователя. Название: ADMINISTRADOR DA ACENTUAÇÃO. Он использует некоторые специальные символы.
В моих взглядах:

{!!Auth::user()->name!!} 

это показывает:

ADMINISTRADOR DA ACENTUA O

Но в моем контроллере, прежде чем я вернусь, я сделал:

 die(\Auth::user()->name); 

и это показывает мне:

АДМИНИСТРАДОР Д.А. АКТУНУА

Я пытаюсь сделать это в моем файле:

  {!!Auth::user()->name!!} <?php die(); 

И это прекрасно работает. Это показывает мне:

АДМИНИСТРАДОР Д.А. АКТУНУА

Это заставляет меня поверить, что ошибка occours для чего-то laravel делает после разбора взглядов.

Я не знаю, почему это работает хорошо, когда я умираю от имени пользователя на контроллере, но не работает, когда я повторяю его имя в представлении.

Может кто-нибудь мне помочь?

PS:

  • В моем файле просмотра используется utf8 charset
  • Я пытался эхом с и без html-тегов и метафоры. Проблема возникает в обоих случаях
  • Я попытался удалить мой файл вида и создать новый с помощью utf8 charset. Это не работает.
  • Я пытался использовать <?php echo Auth::user()->name; ?> <?php echo Auth::user()->name; ?> вместо ярлыков. Это не работает.

Я решил эту проблему, используя этот aswer . Я только что зашел в свой AppServiceProvider и применил метод загрузки:

 Blade::setEchoFormat('e(utf8_encode(%s))'); 

Я не знаю, правильно ли это делается, но это работает для меня.

Как правило, придерживаясь UTF-8, жизнь остается простой.

Будьте очень осторожным копированием и вставкой из любого места в свой код – в основном всегда используйте Notepad ++ и используйте его преобразование в UTF-8 (без спецификации) перед копированием и вставкой в ​​свой код.

Первый вопрос – как данные попадают в вашу базу данных?

Mega Top Tip Если вы используете форму, убедитесь, что вы установили признанный атрибут charset в элементе формы:

 <form accept-charset="UTF-8" 

Затем убедитесь, что все ваши представления (включая страницы с ошибками) имеют

 <meta charset="UTF-8"> 

Или следующее, если вы делаете HTML4

 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 

Поскольку успешные и ответные действия не ведут себя последовательно, разница может быть в заголовках HTTP. Если это так, то происходит то, что Sqlserver и ваш браузер используют одну и ту же кодировку, вероятно, некоторые по умолчанию Windows, такие как cp1252, в то время как Laravel настроен на ответ другой кодировкой, чем та, что используется в базе данных.

Проверьте тип содержимого заголовка HTTP как при вызове представления, так и при его смерти () – если это ваша проблема, настройте Laravel на отправку некоторого заголовка, который согласуется с вашими шаблонами и вашей кодировкой базы данных (или, конечно же, перекодировать в случае необходимости)

Я случайно открыл свой кодированный UTF-8 файл в другом текстовом редакторе и сохранил его. Однако он автоматически сохранил мой файл UTF-8 как ANSII . Поэтому мне пришлось снова открыть файл и сохранить файл в UTF-8 .