2011-01-06 8 views
0

Je dois passer le contenu d'un textarea comme l'attribut source d'une balise d'image et de capturer toutes les entrées, y compris les sauts de ligne, etc.Encode TextArea demande GET

Il semble que la seule façon de le faire est à la base 64 l'encoder puis urlEncode le résultat. (Je peux alors unencode tout le côté du serveur.)

  1. Est-ce correct?
  2. Y a-t-il une bibliothèque de base 64 préférée pour le javascript? doit être un navigateur croisé.

Répondre

3

Il semble que la seule façon de le faire est de le coder en base 64, puis d'urlEncode le résultat. (Je peux ensuite le désencoder tout le côté du serveur.)

Vous avez seulement besoin de coder en base64 les données binaires - ce qu'une zone de texte ne contient pas.

Il suffit d'utiliser encodeURIComponent

+0

Ok, cela fonctionne très bien. Mon raccrochage était que je suis en train de former une URL qui est passée à un contrôleur ASP.NET MVC qui ne pouvait pas gérer les caractères spéciaux dans le moteur de routage. La solution consiste à ajouter la valeur codée en tant que paramètre de chaîne de requête au lieu d'un composant de routage: url .../id /? T = codedtext au lieu de url ../ id/encodedtext / – andleer

0

UrlEncode devrait être suffisant (pas besoin de base64 que vous pouvez exprimer des sauts de ligne comme (par exemple) %0D%0A aussi bien), mais tout ce que vous construisez des sons très vulnérables aux attaques de cross site scripting.