Ich stehe hier vor einem Zeichenproblem. Ich entwickle eine App, die eine SQL-Server-Datenbank verwendet. Die Datenbank wurde nicht für diese App erstellt, sie existiert davor und funktioniert sehr gut. Ich kann nichts an der Datenbank ändern, weil es zu groß ist und von vielen anderen Apps verwendet wird.
Ich habe die Authorisierung meiner Laravel 5 App abgeschlossen, also werde ich eine Ansicht erstellen und in dieser Ansicht den Namen des angemeldeten Benutzers anzeigen. Der Name lautet: ADMINISTRADOR DA ACENTUAÇÃO. Es verwendet einige Sonderzeichen.
In meinen Ansichten:
es zeigt:
ADMINISTRADOR DA ACENTUA O
Aber in meinem Controller, bevor ich die Ansicht zurückgebe, tat ich:
%Vor%und es zeigt mir:
ADMINISTRADOR DA ACENTUAÇÃO
Ich versuche es jetzt in meiner View-Datei:
%Vor%Und das funktioniert gut. Es zeigt mir:
ADMINISTRADOR DA ACENTUAÇÃO
Es macht mich glauben, dass der Fehler für etwas laravel passiert, nachdem die Ansichten geparst sind.
Ich weiß nicht, warum es gut funktioniert, wenn ich den Benutzernamen auf dem Controller, aber nicht funktioniert, wenn ich seinen Namen auf der Ansicht echote.
Darf mir jemand helfen, plz?
PS:
<?php echo Auth::user()->name; ?>
anstelle von Blade-Tags zu verwenden. Es funktioniert nicht. Ich habe dieses Problem mit dieser Antwort gelöst . Ich bin gerade in meinem AppServiceProvider gegangen und in Boot-Methode:
%Vor%Ich weiß nicht, ob das der richtige Weg ist, aber es funktioniert für mich.
Im Allgemeinen hält sich das Leben an UTF-8 einfach.
Seien Sie sehr vorsichtig Kopieren und Einfügen von irgendwo anders in Ihrem Code - grundsätzlich immer durch Notepad ++ gehen und verwenden Sie seine Konvertierung in UTF-8 (ohne BOM) vor dem Kopieren und Einfügen in Ihren Code.
Erste Frage - wie kommen die Daten in Ihre Datenbank?
Mega Top Tipp Wenn Sie ein Formular verwenden, stellen Sie sicher, dass Sie das akzeptierte Zeichensatzattribut für das Formularelement festgelegt haben:
%Vor%Stellen Sie dann sicher, dass alle Ihre Ansichten (einschließlich Fehlerseiten)
haben %Vor%Oder Folgendes, wenn Sie HTML4 machen
%Vor%Da sich Erfolg und Fehlerreaktion nicht konsistent verhalten, kann der Unterschied in den HTTP-Headern liegen. Wenn das der Fall ist, geschieht es, dass Sqlserver und Ihr Browser die gleiche Kodierung benutzen, wahrscheinlich einige Windows-Standard, wie cp1252, während Laravel konfiguriert ist, um mit einem anderen Zeichensatz als dem in der Datenbank verwendeten zu antworten.
Überprüfen Sie den HTTP-Header content-type sowohl beim Aufruf der Ansicht als auch beim Sterben () - wenn dies Ihr Problem ist, konfigurieren Sie Laravel, um einen Header zu senden, der mit Ihren Vorlagen und Ihrer Datenbankkodierung (oder natürlich! explizit transkodieren) übereinstimmt wenn nötig)
Tags und Links php character-encoding utf-8 laravel-5 laravel