decodeURIComponent wirft Fehler? ->UTF-8!

- zur info
Liebe Forumsleser,
gerade hatte ich folgendes Problem, das ich hier posten wollte:
Warum wirft mir http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#decode_uri_component@title=decodeURIComponent() bei folgendem String einen "malformed URI sequence" Fehler, wo die Codierung doch von PHPs rawurlencode() vorgenommen wurde?
var URI = "images/Togen%20M%E4dels%20klein.JPG";
alert(decodeURIComponent(URI)); // wirft "malformed URI sequence" Fehler
Was genau an diesem URI ist denn nicht in Ordnung?
Jetzt habe ich für die Verlinkung hier in meinem Thread extra die PHP-Seite der Funktion "rawurlencode" aufgerufen, um deren URL zu erhalten, und da stand doch tatsächlich in den Userkommentaren der rettende Hinweis: Der umzuwandelnde String muss in UTF-8 vorliegen, da es sonst bei Sonderzeichen (und hier hatten wir ja deutsche Umlaute dabei) zu Problemen kommt.
Und wieder hat sich ein Problem bereits beim Posten erledigt. Hach, mein SELFFORUM, was täte ich ohne Dich?
Liebe Grüße aus Ellwangen und einen frohen Restnikolaus,
Felix Riesterer.
Moin!
Warum wirft mir http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#decode_uri_component@title=decodeURIComponent() bei folgendem String einen "malformed URI sequence" Fehler, wo die Codierung doch von PHPs rawurlencode() vorgenommen wurde?
var URI = "images/Togen%20M%E4dels%20klein.JPG";
alert(decodeURIComponent(URI)); // wirft "malformed URI sequence" Fehler
>
> Was genau an diesem URI ist denn nicht in Ordnung?
Bleibt die Frage, warum du überhaupt rawurlencode() und decodeURIComponent() bemühst, wo die Pfadangabe doch gar nicht in einem URL-Kontext steht - sondern im Javascript-String-Kontext.
Ein ganz normales addslashes() sollte es wahrscheinlich schon tun.
- Sven Rautenberg
--
"Love your nation - respect the others."
Lieber Sven,
var URI = "images/Togen%20M%E4dels%20klein.JPG";
alert(decodeURIComponent(URI)); // wirft "malformed URI sequence" Fehler
> >
> > Was genau an diesem URI ist denn nicht in Ordnung?
>
> Bleibt die Frage, warum du überhaupt rawurlencode() und decodeURIComponent() bemühst, wo die Pfadangabe doch gar nicht in einem URL-Kontext steht - sondern im Javascript-String-Kontext.
den Wert, den ich für dieses Beispiel in der Variablen URI notiert habe, bekomme ich eigentlich über ein click-Event aus einem Verweis zurück. Es handelt sich um meinen Dateimanager, in dem Dateinamen über Verweise im Dokument gehandhabt werden. Und dort muss ich den URI in einem Formular abspeichern. Genau hier kommt es aber zu Kodierungsproblemen, da UTF-8 (default für Javscript) und ISO-8859-1 (mein Dokument) sich beißen.
Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)