2010-11-25 4 views
0

Je cherche à encoder des caractères spéciaux (ex: caractères japonais) avec '. encodeURIComponent() encode les caractères spéciaux, mais n'encode pas '.Une fonction Javascript intégrée pour encoder '?

Toute fonction Javascript intégré qui combine les deux (c.-à-encode les caractères japonais, ainsi que '

+3

Quel type d'encodage recherchez vous? – Gumbo

+0

'encoderURIComponent' n'a pas besoin d'encoder' '', parce que c'est un caractère valide dans un URI. Pourquoi voudriez-vous encoder '' ''? – RoToRa

+0

Je veux encoder * tous * les caractères spéciaux avec une fonction qui est sans danger pour le jeu de caractères. '' 'entre en collision avec certaines chaînes qui contiennent déjà' ''. – pavanlimo

Répondre

1

Essayez escape et unescape


Mise à jour:. OK, échapper/unescape ne sont pas I18N amical. Vous dites encodeURIComponent vous obtient le plus de chemin, mais manque quelques caractères, à savoir '.Nous pouvons faire une fonction d'aide utf8escape qui utilise encodeURIComponent mais prend également soin des caractères restants pour échapper, à savoir ' :

<html><head><title></title> 
     <script> 
      function utf8escape(s) { 
       s = encodeURIComponent(s); 
       s = s.replace(/'/, '%27'); 
       return s; 
      } 
      function enc() { 
       var f1 = document.getElementById("f1"); 
       f1.value = utf8escape(f1.value); 
      } 
      function dec() { 
       var f1 = document.getElementById("f1"); 
       f1.value = decodeURIComponent(f1.value); 
      } 
     </script> 
    </head> 
    <body> 
     <input type="text" id="f1" name="f1" size="80"/><br/> 
     <button onclick="enc()">Encode</button> 
     <button onclick="dec()">Decode</button> 
    </body> 
</html> 

Cette implémentation est peut-être inefficace, mais vous avez l'idée générale, je suppose.

+0

Malheureusement, ces 2 fonctions ne sont pas sécurisées. Pas bon pour I18N. – pavanlimo

+0

Je ne vous ai pas tout à fait vous @Mike. – pavanlimo

+0

@pavanlimo: désolé, j'ai eu une faute de frappe. J'ai mis à jour ma réponse. J'espère que c'est pertinent et utile. –

Questions connexes