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.
Quel type d'encodage recherchez vous? – Gumbo
'encoderURIComponent' n'a pas besoin d'encoder' '', parce que c'est un caractère valide dans un URI. Pourquoi voudriez-vous encoder '' ''? – RoToRa
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