使用 toSource() 的 Javascript 对象序列化将特殊字符转换为十六进制代码 - 如何反转?

标签 javascript serialization utf-8 object special-characters

如果我将一个简单的 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/

相关文章:

c++ - C++ 中的 UTF-8 兼容性

perl - substr 在非常长的 UTF-8 字符串上的性能问题

执行货币算术的 JavaScript API?

javascript - for...in 在 JavaScript 中是如何实现的?

javascript - 在 Javascript 和/或 jQuery 中,如何在包装的 div 中获取第一行文本

java - Java序列化的解释

php - MYSQL:为查询选择了不正确的排序规则

javascript - React 使用 requestAnimationFrame 吗?如果有的话,它是如何使用的呢?

php - 将项目插入序列化数组 mysql php

c++ - 使用 shared_ptr boost 序列化而不在指向类中实现 serialize() 函数