Rolf B: formular accept-charset="utf-8"

Beitrag lesen

Hallo phatman,

das liegt sicherlich an der Ursache. Ohne genauere Infos ist die schwierig zu finden.

Mit accept-charset hat es eigentlich weniger zu tun, denn eigentlich ist dieser Header obsolet. Man soll seine Inhalte utf-8 codiert liefern. Man kann im content-type Responseheader noch charset=utf-8 hinzufügen. Man kann im HTML head ein <meta charset="utf-8"> ergänzen.

Das ist aber alles nur eine Verpackungsaufschrift. Wenn das Nutellaglas Hundekot enthält, ist der zwar auch braun, aber der nom nom nom Effekt bleibt aus.

Prüfen solltest Du also:

  • enthält dein HTML eine <meta charset> Angabe mit einem Wert ungleich "utf-8"? Wenn ja: Weg damit
  • liefert dein Server einen content-type Header mit text/html; charset=utf-8? Oder ein anderes Charset?
  • Ist deine HTML Datei korrekt UTF-8 codiert? Oder hast Du an einigen Stellen nicht aufgepasst und den Windows-Zeichensatz verwendet?
  • Sind die Zeichen, die richtig dargestellt werden, im Quellcode vielleicht als HTML Entität codiert? (&auml; und co)

Was ohne Unicode-Quelle gerne passieren kann, ist Codepage-Konfusion. Du erstellst die Datei mit einem Einbyte-Zeichensatz und verwendest dabei die Codepage X (z.B. die Windows-Codepage 1252). Dann sendest Du die Datei aber mit einem falschen Charset, z.B. ISO8859-1, und die Übersetzung liefert Müll. Es kann auch sein, dass man beim Erstellen der Datei nicht aufgepasst hat.

Das herauszubekommen ist Sisyphosarbeit, vor allem, wenn es sich nicht um statisches HTML, sondern um programmatisch erzeugtes HTML handelt (z.B. PHP) und da auch noch Daten aus Datenbanken abgerufen werden.

Rolf

--
sumpsi - posui - obstruxi