Laravel 5-charset nicht richtig auf die Ansichten. Aber es funktioniert gut, wenn ich dump es von der Steuerung

Ich bin vor ein charset-problem hier. Ich entwickle eine app, die verwendet eine sql server-Datenbank. Die Datenbank wurde nicht erstellt, für diese app, es existiert, bevor es und funktioniert sehr gut. Ich kann es nicht ändern, alles auf der Datenbank, weil seine zu groß und seine von vielen anderen apps.

Ich habe fertig die auth von meinem laravel 5 app, also werde ich eine Ansicht erstellen, und zeigen Sie in dieser Ansicht den Namen der angemeldeten Benutzer. Der name: ADMINISTRADOR DA ACENTUAÇÃO. Es verwenden einige Sonderzeichen.

In meinen Ansichten:

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

zeigt es:

ADMINISTRADOR DA ACENTUA��O

Aber in meinem controller, bevor ich wieder der Ansicht, ich habe:

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

und es zeigt mir:

ADMINISTRADOR DA ACENTUAÇÃO

Ich versuche das jetzt in meine Datei anzeigen:

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

Und dies funktioniert gut. Es zeigt mir:

ADMINISTRADOR DA ACENTUAÇÃO

Es macht mich glauben, dass der Fehler aufgetreten ist, für etwas zu laravel hat, nachdem die Ansichten analysiert werden.

Ich weiß nicht, warum es funktioniert gut, wenn ich sterbe, den Benutzernamen auf dem controller, aber nicht funktioniert, wenn ich echo seinen Namen auf die Ansicht.

Kann mir jemand helfen plz?

PS:

  • Meine view-Datei ist mit utf8-Zeichensatz
  • Ich versuchte echo mit und ohne html-tags und meta charset. Das problem aufgetreten ist in beiden Fällen
  • Habe ich versucht zu löschen, meiner Ansicht Datei und erstellen Sie eine neue mit utf8-Zeichensatz. Es funktioniert nicht.
  • Ich habe <?php echo Auth::user()->name; ?> statt blade-tags. Es funktioniert nicht.
  • Überprüfen Sie die Kodierung Ihrer Dateien anzeigen, und versuchen Sie zu konvertieren mit einem tool wie Notepad++, nach der Sicherung eine backup-zuerst natürlich. Es könnte die IDE, die das problem verursacht, konfigurieren Sie Ihre ide, um Ihre Dateien zu speichern mit UTF-8-Codierung. Einige andere Gründe könnten sein, Ihre server-Konfiguration oder-noch schlimmer-Ihre Datenbank.
  • Ich habe versucht, meine konvertieren view-Dateien, die ich versuchte, selbst zu löschen und eine neue view-Datei mit dem utf8-Zeichensatz. Aber es funktioniert nicht.
  • Was deine DB hat als charset? Meta tag-set in der Ansicht?
  • Seine gleichgültig. Ich habe versucht, mit einem Blick, ohne jeden tag, nur den text. Wenn ich einen Würfel nach dem echo, das es funktioniert, aber wenn ich nur das echo, das es nicht funktioniert. Ich denke, die verursacht wird durch etwas, was Laravel hat nach Ansicht gerendert wird
  • Der beste Weg, um zu überprüfen, was passiert ist, zu überprüfen, was ist die Codierung der Zeichenfolge mit mb_detect_encoding($str), Stellen Sie sicher, dass es UTF8. Beachten Sie auch, dass die() und echo könnten unterschiedliche Verhaltensweisen. Ich erinnere mich, dass an einem Punkt, als ich die wurden die Inhalte korrekt gedruckt in der browser aber nur, weil die browser das verwalten der Konvertierung. Ein nicht-so-gut-fix ist, etwas zu verwenden, konvertieren Sie Ihre Saiten auf UTF8 (überprüfen Sie diese Antwort)
  • Ich versuchte jetzt: {!!mb_detect_encoding(Auth::user()->nomePessoa).' - '.Auth::user()->nomePessoa!!} aber es zeigt mir: UTF-8 - ADMINISTRADOR DA ACENTUA��O
  • Es ist eine lange gedreht, aber versuchen Sie daran vorbei {{ Auth::user()->name }}
  • Wenn ich versuche zu entkommen, der string wird nicht gezeigt. Ändere ich den charset für meine Ansicht iso-8859-15 und es funktionierte gut, wenn ich die echo-Zeichenfolge ohne Umschreibung. Aber wenn ich jetzt echo-Escape-string, ist es nicht zeigte... (nur wenn es Besondere chars)
  • Haben Sie versucht, es in verschiedenen Browsern? Auch gibt es spezielle Zeichen, die später in der view, die den browser dazu zwingt, einen anderen Zeichensatz verwenden? Vielleicht ein Apostroph geben Sie auf einem Mac, oder sowas?
  • Ja, ich versuchte. Ändere ich den Zeichensatz des Dokuments auf windows-1252, und es funktioniert perfekt, wenn ich mit echo die variable ohne Flucht es funktioniert perfekt, aber wenn ich die Flucht vor dem echo, das es nicht angezeigt wird. Jetzt muss ich verändern das Verhalten der Klinge escape-Funktion.

Schreibe einen Kommentar