Сериализация объектов Javascript с помощью toSource () преобразует специальные символы в шестнадцатеричный код - как наоборот? - PullRequest
3 голосов
/ 19 августа 2010

Если я преобразую простой объект JavaScript в строку, все специальные символы будут преобразованы в шестнадцатеричный код.

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

Результат:

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

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

1 Ответ

1 голос
/ 19 августа 2010

Если вы используете json2.js Крокфорда , вы полностью избежите этой проблемы.

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

выходы

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

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

...