Der Martin: Encoding: Alle Sonderzeichen werden zu �

Beitrag lesen

Hi,

In einer Webform werden Daten erfasst. Das klappt zu 99% ohne Probleme.
Gelegentlich kommt es vor, dass dort Daten erfasst werden wo alle Sonderzeichen (ÖÄÜöäü?@€ usw.) durch ein � ersetzt werden.

also doppelt verstümmelt: Erstens das Zeichen U+FFFD, das eine fehlerhafte, nicht decodierbare Bytefolge in UTF-8 signalisiert, und das auch noch als NCR?
Also gibt's irgendwo Diskrepanzen mit der Zeichencodierung. Wobei U+FFFD eigentlich ein Indiz dafür ist, dass UTF-8 erwartet wird, aber eine andere Codierung geliefert wird.

* In welcher Codierung liegt das HTML-Dokument *tatsächlich* vor?
 * In welcher Codierung wird es vom Server deklariert (HTTP-Header)?
 * In welcher Codierung werden die Formulardaten verschickt?
 * In welcher Codierung werden sie vom verarbeitenden Script erwartet?

<meta http-equiv='Content-Type' content='text/html;charset=iso-8859-1'>

Diese Angabe kommt wahrscheinlich nicht zum Tragen - es sei denn, der Server macht keine Aussage darüber. Aber gehen wir mal davon aus, dass du tatsächlich ISO-8859-1 verwendest und der Server das auch korrekt angibt.

<form accept-charset='ISO-8859-1' name='test' action="worder.asp" method="POST">

Okay, hier nochmal explizit ISO-8859-1. Tja, offenbar erwartet dein Script worder.asp die Eingaben aber in UTF-8. Das heißt, alle nicht-ASCII-Zeichen, die in der ISO-Codierung durch ein Byte im Bereich 80..FF repräsentiert sind, werden als Fehler markiert.

So long,
 Martin

--
Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
Heißes Wasser kann man immer gebrauchen.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(