c--: Zeichencode in Zeichen konvertieren / Sonderzeichen in Form

Beitrag lesen

@Sven Rautenberg

Vorausgesetzt, ich verwende *nicht* utf8_decode()...

Als erstes habe ich dabei einfach mein JavaScript den value aus der textarea rausholen lassen, diesen mit escape() verschlüsselt (es darf ja kein & enthalten sein) und als einen (von mehreren) Parametern an die Funktion SendData (siehe unten) gegeben.

escape() ist die falsche Funktion. encodeURIComponent() ist richtig.

Wenn ich encodeURIComponent verwende, habe ich das gleiche Problem, wie mit meinem Verschlüsselungsumweg encode2(). Also z.B. wird aus einem ä ein ä.

Daher: Aus welchem Grund ist escape() falsch?

Und dies funktioniert bei Umlauten nicht. Ein mb_ord("ä") gibt mir zwar 228 aus, aber ein mb_chr(228) oder ein mb_chr(mb_ord("ä")) gibt ä (2 Zeichen!) aus.

Offenbar ist die Seite, in der du UTF-8-codierte Zeichen ausgibst, nicht mit dieser Codierung an den Browser übertragen worden. Check mal, welches Encoding dir dein Browser in den Seiteninformationen anzeigt.

Doch, ich hatte zwar ursprünglich Latin1 über einen meta-Tag ausgegeben, aber im Moment habe ich auf UTF-8 gewechselt. Dies wird mir auch vom Firefox bestätigt (View Page Info - Encoding: UTF-8).

Deine geschriebenen Funktionen sind leider allesamt überflüssig.

Da ich magic_quotes deaktivieren kann, weiß ich das mittlerweile auch.
Wie gesagt - ohne meinen Verschlüsselungsumweg und mit escape() vorm Absenden funktioniert's ja jetzt auch.