Warum gibt utf8 Zeichen auf einem Server zurück, aber nicht auf einem anderen? Einige Dateinamen enthalten Unicode-Zeichen wie æ
ø
und å
..
In einigen Umgebungen werden utf8 Zeichen gedruckt und in einigen Iso-Zeichen gedruckt
%Vor% Ausgabe Content-Type:text/plain;charset=UTF-8
Die gleichen Ländereinstellungen sind auf beiden Systemen installiert (UTF8)
%Vor%Sie können feststellen, dass Ihr Webserver unter einem anderen Gebietsschema auf jedem System ausgeführt wird.
Um dies festzustellen, führen Sie den folgenden php über Ihren Webserver aus:
%Vor%Es besteht die Möglichkeit, dass der Webserver, der die korrekten Zeichen zurückgibt, entweder in einem 'utf8' Gebietsschema oder 'C' läuft.
Das Gebietsschema, das der Webserver verwendet, kann an verschiedenen Orten eingestellt werden. Entweder mit dem systemweiten Gebietsschema - oder einem dienstspezifischen Gebietsschema. Sie müssen wahrscheinlich den Grund für einen Unterschied untersuchen und entscheiden, ob Sie Ihr systemweites Gebietsschema oder nur den Webserver aktualisieren möchten.
Unter Debian kann die systemweite Gebietsschemaänderung mit
geändert werden %Vor%Und den Aufforderungen folgen.
Alternativ für dienstspezifische Ländereinstellungen. Setzen Sie die Umgebungsvariable 'LANG' vor dem Starten des Service auf den Wert, den Sie im Service-Init-Skript benötigen. Es gibt wahrscheinlich eine servicespezifische Konfigurationsdatei, die Sie auch suchen können, um die Änderung im Fall von Webserver-Upgrades beizubehalten.
Dies ist keine PHP-Frage, es ist eine Systemfrage. Das Problem stammt wahrscheinlich von falsch konfigurierten Gebietsschemas auf einem der Systeme. Wenn Sie locale
ausführen, können Sie überprüfen, welche Ländereinstellungen derzeit installiert sind. Wenn das Gebietsschema nicht als UTF-8 markiert ist, wird dies Ihr Problem sein. Durch die Installation der korrekten UTF-8-Ländereinstellung wird das Problem behoben.
Versuchen Sie, utf-8-Codierung in Ihrer Kopfzeile zu setzen:
%Vor%Tags und Links php directory filesystems