如果我将一个简单的 JavaScript 对象转换为字符串,所有特殊字符都将转换为十六进制代码。
function O() {
this.name = "<üäö!";
}
var myObject = new O();
console.log(myObject.toSource());
结果:
{name:"<\xFC\xE4\xF6!"}
我如何避免这种情况或将所有十六进制字符转换回 utf8 字符?
最佳答案
如果您使用 Crockford 的 json2.js ,你就完全避免了这个问题。
console.log(JSON.stringify(myObject));
输出
{"name":"<üäö!"}
然后您可以发送这个字符串,例如使用 XMLHttpRequest
(在这种情况下,不要忘记使用 encodeURIComponent
)。
关于使用 toSource() 的 Javascript 对象序列化将特殊字符转换为十六进制代码 - 如何反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3520934/