Christian Kruse: Wer bastelt da? Doppelte Codierung des Rückmeldung beim Post

Beitrag lesen

Hallo Andreas,

Hallo Andreas,

diesmal ohne -Linidg, hehe...

Eigentlich immer ohne -Lindig ;-)

Du kuckst, ob der String ein Zeichen zwischen 127 und 159 enthält
und wenn ja, tippst Du auf Windows-1252 und convertierst den
ganzen string (length($val)) von Windows-1252 nach UTF-8?

So ganz einfach ist es nicht. Ich kann davon ausgehen, dass der
Input entweder ISO-8859-1 oder UTF-8 ist. Immer noch eine
Wahlmoeglichkeit zu viel. Also habe ich mir dafuer etwas einfallen
lassen: ich gebe in einem Feld ÿ mit — bei UTF-8 wird das dann
als \303\277 geschickt, bei anderen Charsets mit etwas anderem.

Du gibst "ÿ> " mit. Wozu sind denn ">" und " "?

das "> " sind die Quoting-Charaktere bei dir. Du zitierst mit "> ".

Daran kann ich also erkennen, ob UTF-8 oder ExternCharset (aus
einer Konfigurations-Datei) geschickt wurde. Gut, dann muss man
ueber den Bug der Geckos bescheid wissen: sie schicken € als \x80,
wenn der Seiten-Charset ISO-8859-1 ist.

Der Grund, warum Mozilla das € immer darstellt, ja? D.h. aber auch, daß er
im Darstellungsverhalten die Besonderheit hat, \x80 (128) anzuzeigen.

Ja.

Aber was machst du denn mit dem IE, der schickt bei mir € immer als
Zeichenkette "€"?

accept-charset="ISO-8859-1,UTF-8". Bei mir schickt er nie Entities. Probiere
doch hier mal ein wenig herum, das habe ich seinerzeit fuer den Mozilla-
Bugreport gemacht:

</cgi-bin/test.pl>

In Latin1 ist aber der Bereich zwischen \x7F und \x9F nicht definiert, also
kann es sich (weil wir ja bescheid wissen) nur um Windows-1252 handeln.

Also: Du prüfst _erst_, ob &#255; korrekt als utf-8 zurückgegeben wurde,
wenn nicht prüfst Du, ob Zeichen zwischen 127 und 159 vorkommen. Und wenn
ja, tippst Du auf Windows-1252?

Korrekt.

Wenn man sowas in PHP machen wollte, bräuchte man aber eine handgestrickte
Vergleichstabelle, um die Zeichen von 127 bis 159 in das richtige utf-8
Zeichen zu übersetzen, gell?

Nein, es gibt doch die iconv-Erweiterung:

http://php.net/iconv

Grüße,
 CK

--
Der Geist ist alles. Du wirst, was du denkst.
http://wwwtech.de/