2010-08-19 1 views
3

Если я преобразую простой объект JavaScript в строку, все специальные символы будут преобразованы в шестнадцатеричный код.Сериализация объекта Javascript с помощью toSource() преобразует специальные символы в шестнадцатеричный код - как отменить?

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

Результат:

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

Как бы этого избежать или конвертировать все шестигранные символы обратно в utf8 символов?

ответ

1

Если вы используете json2.js от Crockford, вы полностью избегаете этой проблемы.

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

выходы

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

Вы можете затем отправить эту строку, например, используя XMLHttpRequest (в этом случае не забудьте использовать encodeURIComponent).

 Смежные вопросы

  • Нет связанных вопросов^_^