Trotz UTF-8 HTTP Header keine Umlaute
wstaiger
- browser
Hallo zusammen.
Ich habe folgendes Problem.
Auf meiner Website werden Umlaute leider als "?" angezeigt.
In der httpd.conf meines Apaches ist auch kein "Default"-Charset eingestellt und in meiner php.ini ist auch kein Default-Charset gesetzt.
In meiner Mysql Datenbank sind die Umlaute auch richtig abgelegt.
Wenn ich mir über den Firefox die Response Headers ausgeben lasse bekomme ich korrekt "Content-Type: text/html; charset=utf-8"
Als Zeichenkodierung habe ich im Firefox auch UTF-8 eingestellt.
Wenn ich die Zeichencodierung im Firefox auf ISO-8859-15 stelle werden mir die Umlaute korrekt angezeigt.
Das selbe Problem im IE.
Seltsamerweise wird das ™ (Trademark) Symbol immer korrekt angezeigt.
Wenn der HTTP-Header richtig übergeben wird müsste der Browser die Zeichen doch korrekt anzeigen, oder?
Woran kann das liegen und/oder was habe ich übersehen?
Moin!
Auf meiner Website werden Umlaute leider als "?" angezeigt.
Wenn ich die Zeichencodierung im Firefox auf ISO-8859-15 stelle werden mir die Umlaute korrekt angezeigt.
Dann werden deine Umlaute nicht als UTF-8-codiert ausgegeben, sondern als ISO.
Ändere das, oder deine Charset-Angabe, und es wird funktionieren.
Wenn der HTTP-Header richtig übergeben wird müsste der Browser die Zeichen doch korrekt anzeigen, oder?
Wenn ich über mein Posting drüberschreibe: "Dieser Text hier ist Englisch!" - ist die im Posting verwendete Sprache dann Englisch, oder immer noch Deutsch?
Genauso ist es beim Character Encoding: Man muß nicht nur die Deklaration ändern, sondern das Encoding auch umwandeln, damit alles funktioniert.
- Sven Rautenberg
Hallo
Wie muß dann z.B ein "ä" in der Datenban codiert werden, damit der Browser es richtig interpretiert?
Weil meine Kollation in der Datenbank ist "utf8_general_ci".
Tach,
Wie muß dann z.B ein "ä" in der Datenban codiert werden, damit der Browser es richtig interpretiert?
Weil meine Kollation in der Datenbank ist "utf8_general_ci".
die Datenbank ist uninteressant, der Browser kommuniziert ja nicht mit ihr; interessant ist was dem Browser ausgeliefert wird.
mfg
Woodfighter
Moin!
„Alle Jahre wieder, kommt das Encoding“ – Ich habe im Bugtracker unter #1519 mal den Vorschlag gemacht, die Zeichensatz„problematik“ in die FAQ aufzunehmen.
Die Lösung des Problems kann doch so einfach sein: In dem Zeichensatz, denn mein Formular verwendet, werden die Daten in der Datenbank gespeichert, folglich muss die auslesende Seite im gleichen Zeichensatz kodiert sein.
Und bei einer „handgeschriebenen Dateie“ wird der Zeichensatz angegeben, in dem die Datei tatsächlich kodiert ist und nicht, den ich gerne hätte.
Das heißt jetzt hier konkret:
Ich habe folgendes Problem.
Auf meiner Website werden Umlaute leider als "?" angezeigt.
In meiner Mysql Datenbank sind die Umlaute […] richtig abgelegt.
Was heißt „richtig“?
Wenn ich mir über den Firefox die Response Headers ausgeben lasse bekomme ich korrekt "Content-Type: text/html; charset=utf-8"
Wenn ich die Zeichencodierung im Firefox auf ISO-8859-15 stelle werden mir die Umlaute korrekt angezeigt.
Ein „korrekt“ ist hier zuviel, vermutlich das obere.
Wenn der HTTP-Header richtig übergeben wird müsste der Browser die Zeichen doch korrekt anzeigen, oder?
Der Browser zeigt deine ISO-8859-15-kodierten Sonderzeichen korrekt als UTF-8 an, d.h. er bekommt Zeichen-Codes, die in UTF-8 keine Entsprechung haben, weshalb er auf „?“ ausweicht. Alles Weitere steht oben bzw. in Svens Antwort.
Viele Grüße,
Robert