Thread wieder mal Umlaute bei cgi Parameter (9 answers)
Opened by chris- at 2009-01-15 18:25

chris-
 2009-02-02 16:33
#118584 #118584
User since
2007-10-18
18 Artikel
BenutzerIn
[default_avatar]
ok. habe Link von moritz gelesen. Bin noch nicht schlau geworden

Mein System ist utf-8 basiert, die Dateien liegen im utf-8-Format auf der Festplatte.
Ich lese Dateien ein und zeige sie via cgi-bin an.
Lese ich von einem form gibt es Müll.

Allggemein: Die Steite im Browser hat natürlich
Code: (dl )
<meta http-equiv="content-type" content="text/html;charset=utf-8" />


Versuch1:
zu Beginn des Programms
Code: (dl )
use open ':encoding(UTF-8)';


Ergebnis:
Datei wird im Browser richtig angezeigt.
Gebe im Formular 'Ä' ein -> es für Datei zu ISO-8859 umgewandelt, obwohl ich im form accecpt-charset="utf-8" angegeben habe.

Versuch2:
Wie Versuch1, zusätzlich der Text aus der form mit
Code: (dl )
decode ('utf-8', $query->param('domains'));

umgewandelt.
Ergebnis:
Datei von HD wird im Browser richtig angezeigt.
Ä -> &#65533;
Also, das kann es nicht gewesen sein.

Versuch3:
Wie Versuch1, zusätzlich der Text aus der form mit
Code: (dl )
decode ('latin1', $query->param('domains'));

umgewandelt.
Ergegbnis:
Datei -> Browser: korrekt
Ä -> in Datei: Ä: korrekt

So wie es aussieht liefert der Browser latin1, aber warum?? Im Form ist utf-8 eingestellt, der Browser (Ansicht -> Zeichenkodierung) ebenfalls.

Nun, wenn mir das nun einer erklären könnte...


Edit: Anmerkung: Verwende CGI::Application.

View full thread wieder mal Umlaute bei cgi Parameter