Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-09-2008, 20:01   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 80
Umlaute per POST schicken

Ich habe ein Problem, Umlaute per POST zu verschicken.

Beispielcode:

ActionScript:
  1. var urlVariables:URLVariables = new URLVariables();
  2. urlVariables.test = "tüte";
  3. var loader:URLLoader = new URLLoader();
  4. var request:URLRequest = new URLRequest("backend.php");
  5. request.method = URLRequestMethod.POST;
  6. request.data = _urlVariables;
  7. loader.load(request);

Im Backend kommt der Parameter test so an: test=t%C3%BCte.

Wenn ich das allerdings mit unescape zurückwandle, bekomme ich kein ü heraus, sondern zwei seltsame Sonderzeichen, escape("ü") sollte auch %FC ergeben, nicht %C3%BC.

Weiß jemand, wo mein Fehler liegt?

Danke
Q-Man
Q-Man ist offline   Mit Zitat antworten
Alt 03-09-2008, 21:19   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Das Backend muss mit UTF-8-kodierten Zeichen rechnen:
http://de.wikipedia.org/wiki/Utf-8
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 03-09-2008, 21:51   #3 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Du kannst einfach den String, bevor du ihn in das URLVariables-Objekt schreibst, mit escape bearbeiten. Anscheinend kommt encodeURI (das wird wohl intern vom URLVariables verwendet) nicht mit UTF8 klar, und codiert "byteweise".
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 03-09-2008, 22:00   #4 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
@Janosch: ein escape'ter UTF-8-kodierter String sieht für meine Begriffe ganz normal so aus, also man sieht beide Bytes als %irgendwas...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 03-09-2008, 22:24   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Also laut Windows-Charmap sollte das "ü" wirklich nur U+00FC sein.

Entsprechen sich denn AS escape/unescape und PHP escape/unescape und auf der anderen Seite AS encodeURIComponent/decodeURIComponent und PHP urlencode/urldecode?
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 03-09-2008, 22:36   #6 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von Janoscharlipp Beitrag anzeigen
Also laut Windows-Charmap sollte das "ü" wirklich nur U+00FC sein.
Windows... hm, hat halt seine eigene Codepage/Charmap oder was auch immer.

Zitat:
Zitat von Janoscharlipp Beitrag anzeigen
Entsprechen sich denn AS escape/unescape und PHP escape/unescape und auf der anderen Seite AS encodeURIComponent/decodeURIComponent und PHP urlencode/urldecode?
Die folgen garantiert irgendeinder RFC-Norm oder wie das heißt.
Davon abgesehen kenne ich decodeURIComponent leider nicht, und in PHP gibt's kein escape/unescape. Also bzw. das Pendant zu escape/unescape in AS/JS ist in PHP urlencode/urldecode.

Gib mal im Browser ein:
Code:
javascript:alert( unescape('%C3%BC') );
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (03-09-2008 um 22:38 Uhr) Grund: Tippse
sonar ist offline   Mit Zitat antworten
Alt 03-09-2008, 22:56   #7 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Warum zum Teufel ergibt dann escape in Flash was anderes als JS wieder verträgt?
Und gib mal
PHP-Code:
javascript:alert(String.fromCharCode(0x0FC) ); 
in deinen Browser ein

EDIT:
und warum kommt hier:javascript:alert(escape('tüte'));
dann t%FCte raus,
und bei javascript:alert(unescape(escape('tüte')));
kommt tüte raus,
aber bei javascript:alert(unescape('t%FCte'));
passiert nichts???
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)

Geändert von Janoscharlipp (03-09-2008 um 23:04 Uhr)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 04-09-2008, 09:38   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 80
Puh, hab die Lösung. URLVariables codiert die Umlaute auf Multibyte-UTF8, da ist ein ü %C3%BC. Zürückgewandelt bekommt man sie mit unescapeMultiByte().
Q-Man ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele