Hallo Andreas,
also, nochmal zum Mitschreiben (ich vermute das da oben ist Perl?):
Jap, ist es.
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.
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. 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.
und für die Convertierung - hast Du da eigene Tabellen gestrickt?
Nein, ich benutze ein Perl-Interface zu libcfcharconvert (eine
Bibliothek, die ich fuer das Forum geschrieben habe). Die wiederum
benutzt und abstrahiert libiconv.
Grüße,
CK
Unsere Vorstellungen von der Ewigkeit sind genauso nuetlich wie die Mutmassungen eines Kuehkens ueber die Aussenwelt bevor es die Eierschale aufbricht.
http://wwwtech.de/