Impressum DatenschutzerklärungNeu: diese Seite per HTTPS ansehen.


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