Impressum Datenschutzerklärung


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