Impressum


Umlautkonvertierung in Flash und php (z.B. für xml) geschrieben am 27.07.2008

Wenn mit Flash und php gearbeitet wird, stellt man in kurzer Zeit fest, dass das en- und decoden von Umlauten unterschiedlich funktioniert.

Solange man in Flash bleibt ist es kein Problem, da schreibt man die Daten einfach weg (z.B: in eine xml-Datei). Sollen diese Daten aber auch in HTML-Formularen bearbeitet werden treten da kleine Probleme auf.

Möchte man von Flash nach php etwas abschicken nutzt man im allgemeinen folgenden Code (AS2):
ActionScript var savevar=new LoadVars(); //Text aus Textfeld auslesen und escapen savevar.name=escape(eingabetxt.text); savevar.message=escape(eingabemsg.text); //per post an go.php absenden savevar.sendAndLoad("go.php",savevar,"POST");
Lässt man in Flash nun als Name Jörg escapen kommt dabei J%C3%B6rg heraus.
Würde man das in php die verschiedenen Decodierungen ausprobieren, käme folgendes heraus:

Eingang=J%C3%B6rg

urldecode=Jörg
rawurldecode=Jörg
utf8_decode=J%C3%B6rg


also alles nichts.

Auf der suche durch diverse Foren bin ich auf diese Lösung gestoßen:
php $name=utf8_decode(urldecode($_POST["name"]));
hierbei wird erst mit urldecode dekodiert und dann nochmal mit utf8_decode und heraus kommt ein sauberer String den man für HTML-Ausgaben transformatieren kann.

Der umgekerte Weg dazu ist
php urlencode(utf8_encode($value));


//flash->php

utf8_decode(urldecode($value));



//php->flash

urlencode(utf8_encode($value));



Ließt man eine so erzeugte xml-Datei ein transformiert man in Flash mit unescape(wert) den Text zurück.




schreibe den ersten Kommentar:


Inhalt zur freien Verwendung gibs es beim Thema Downloads.
nach oben springen
mehr auf: Instagram, github, thingiverse