url von iso in utf-8 umwandeln

  • So, ich näher mich dem Problem, komme aber momentan nicht weiter.
    Ich schreib grad ein Script für Greasemonkey, aber find keine passende Funktion.

    Code
    hrefneu = new String (decodeURI(href))


    funktioniert, allerdings nur für UTF-8 (Also verwandelt UTF-8 kodierte Links in Reintext). Der link soll aber von ISO-8859-1/15 in reintext oder UTF-8 umgewandelt werden.

    Code
    hrefneu = new String (URLDecoder.decode(href(  ) , "ISO-8859-1" )  )


    diese Funktion hab ich ergoogelt, allerdings funktioniert sie nicht (das liegt aber vermutlich an meinen sehr beschränkten javascript-Fähigkeiten).

    noch mal zum Testen:
    http://wawuschel.kilu.de/mailto/mailToTest.html
    bei allen drei Links soll Text im Nachrichtenfeld erscheinen.

    Link 1 = Reintext funktioniert mit TB, nicht mit Outlook
    Link 2 = ISO-8859-1 funktioniert nicht mit TB, aber mit Outlook (meist verwendet, obwohl vermutlich gegen die Norm)
    Link 3 = UTF-8 funktioniert mit TB, nicht mit Outlook

    Wer ne Idee hat - immer her damit ;D
    Gruß
    banana

  • Außer decodeURI gibt es auch noch die alte Variante unescape. Laut Doku verwendet die ISO-8859-1.

    Ein URLDecoder-Objekt gibt es in JavaScript nicht. Google sagt, dass das eine Java-Klasse ist... in JavaScript kannst du das nicht verwenden (außer das hat irgendjemand für JavaScript nachprogrammiert).

  • Danke Dr Evil
    java, javascript - da habe ich wohl nicht so genau gesucht (was meinen Status als newbie unterstreicht). Ich konnte die Klasse über unsafeWindow einbinden (böse, böse, ich weiß). Das ergebnis ist jetzt hier:

    http://userscripts.org/scripts/show/86058

    Allerdings ist das Ergebnis noch sehr unbefriedigend, da die Zeilenumbrüche rausfliegen -> Textsalat.
    Wenn es jemand ausprobieren mag: ich empfehle es nur auf bestimmte Domains anzuwenden, da es unsicher ist und zudem nicht-iso Links gleich mitdecodiert (was dann hübsche schnörkel im Text ergibt).
    Ich such mal weiter.
    banana

    EDIT: habe das gleiche Ergebnis mit der unescape() Funktion erhalten und den Code entsprechend geändert. Warum einfach, wenns auch kopliziert geht :roll:

  • Jetzt fluppt et wie man sö schön sagt. Ich hab noch eine Suchen-und-Ersetzen-Funktion eingebaut, um die Zeilenumbrüche rauszufiltern und jetzt siehts auch schön aus :wink:
    bejot schön, dass es auch andere gebrauchen können, das hat motiviert.

    gruß
    banana

    EDIT: naja so ganz nicht. TB reißt bei 500 und nochwas Zeichen (variiert) den Text ab - zumindest bei mir. Aber ich schätze, da kann ich auch nichts dran machen. Aber für nicht so lange Nachrichten gehts.

    EDIT2:Hab es auf einem anderen rechner mit WinXP FF und TB (der oben erwähnte Fehler war unter Win7 mit portable FF und port. TB) in aktueller Version ausprobiert - da funktionierts einwandfrei yipeeh