Griechische Zeichen-Codierung arbeitet in HTML aber nicht in PHP
Habe ich sehr seltsame Frage, die kann nicht herausfinden,.
ich bin mit notepad++ und wenn ich eine Datei speichern als .php mit griechischen Zeichen ( Zeichen, die nicht aus der Datenbank ) Darstellung der griechischen Zeichen als Fragezeichen in web-Browsern, aber wenn ich speichern gleicher Zeichen als Datei .html-anzeigen-Zeichen nicht richtig.
wenn Griechische Buchstaben angezeigt werden, aus der Datenbank, es zeigt Sie richtig, ohne Frage. Auch ist es nicht richtig funktioniert auf meinem shared-hosting, aber funktioniert gut auf meinem localhost.
versuchte ich zu speichern .php-Datei in einer anderen Codierung, aber immer noch gleiche Problem. Ich habe auch versucht, fügen Sie php-header() und meta-tags utf-8, aber kein Glück.
was könnte das Problem sein?
Dank
Ich nicht haben Zugang zu einem hex-editor, aber diese ?? Aussehen wie normale Fragezeichen für mich. Sind Sie sicher, dass Sie sparen ordnungsgemäße Griechische Zeichen in Notepad++ und die Datei ist kodiert in UTF-8? Das scheint fast unmöglich. Können gehen Sie zurück zu den .html-Datei und speichern Sie es als Php wieder? Diese sieht aus wie Ihre Charaktere waren verstümmelt irgendwo auf dem Weg
Haben Sie versucht, das speichern in Notepad++ mit BOM und ohne BOM?
ja Fred, ich habe beides ausprobiert aber kein Glück.
Ich versuchte es (aus Ihrer Quelle) MIT der Stückliste und zeigt sich gut. Es ist alles Durcheinander, wenn ich es speichern OHNE BOM. Seien Sie vorsichtig, in Notepad, wählen Sie "konvertieren zu" und nicht "encode" aus dem "encoding" - Menü, und speichern Sie die Datei.
InformationsquelleAutor user969068 | 2013-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl es klingt wirklich seltsam, dass Ihr mysql-Daten ausgegeben wird richtig wheres php strings Fehler bei der Kodierung, den Weg würde ich versuchen, Ihr problem zu lösen, wäre zu brechen, wird die Ausgabe in Schritten versucht, zu identifizieren, wo diese fehlcodierung generiert wird!
Erste von allen, sollten Sie versuchen, legen Sie Ihre
default_charset
zuutf-8
innerhalb des php.ini-Datei, die wie folgt vorgenommen :Wenn Sie nicht tun können, weil der provider-Einschränkungen, können Sie immer noch in der Lage sein, um den Wert zu ändern zur Laufzeit mit der ini_set Funktion!
Werden Sie wollen auch sicherstellen, dass der webserver auf output gesetzt ist utf-8-codierten Dateien, wie gut! In Apache kann dies tun, sowohl in der httpd.conf oder mit htaccess-Dateien :
An diesem Punkt, wenn alles fehlschlägt, immer noch... versuchen zu gehen, mit php Header und relative html-charset :
Es ist jedoch sehr wichtig, dass Ihre Dateien gespeichert sind, mit Hilfe einer geeigneten Kodierung (utf-8 ist fast immer die bessere Wahl, es hilft zu verhindern, dass Probleme ziemlich viel). Wenn Sie die gespeicherten Dateien mit Codierung anderes als utf-8, zerstören Sie eine neue erstellen aus Ihren alten Inhalt. Manchmal Redakteure sind nicht wirklich in der Lage zu wechseln Codierungen richtig, sobald die Datei erstellt ist, auch wenn notepad++ ist in der Regel gut auf; verwenden Sie einfach
converto to
nicht dieencode in
feature!Wenn es immer noch nicht funktioniert, obwohl ich hoffe, es tut jetzt, Sie können überprüfen einige andere php-alternativen wie mb_detect_encoding, mb_convert_encoding, htmlentities und htmlspecialchars, um das problem zu beheben!
InformationsquelleAutor Ivo