2010-08-19 4 views
3

Si je convertis un simple objet JavaScript en chaîne, tous les caractères spéciaux seront convertis en code hexadécimal.La sérialisation d'objet Javascript avec toSource() convertit des caractères spéciaux en code hexadécimal - comment inverser?

function O() { 
    this.name = "<üäö!"; 
} 
var myObject = new O(); 
console.log(myObject.toSource()); 

Résultat:

{name:"<\xFC\xE4\xF6!"} 

Comment puis-je éviter cela ou convertir tous les caractères hexadécimaux Retour à caractères UTF8?

Répondre

1

Si vous utilisez le json2.js de Crockford, vous éviterez complètement ce problème.

console.log(JSON.stringify(myObject)); 

sorties

{"name":"<üäö!"} 

Vous pouvez ensuite envoyer cette chaîne, par exemple en utilisant un XMLHttpRequest (dans ce cas, n'oubliez pas d'utiliser encodeURIComponent).

Questions connexes