我有一个以下问题,我正在构建使用来自ajax调用的数据流的应用程序,因此即将到来的数据将在json字符串中进行转义。
示例:1°Set
当我将该数据插入DOM时,它的转换方式如下:1°Set
我不使用任何库,如jQuery,纯Javascript。
我试图将转换后的名称存储在另一个地方,但我似乎无法手动转换它,我尝试了以下功能:
var test = function(str) {
console.log(unescape(encodeURIComponent(str)) );
console.log(decodeURIComponent(escape(str)) );
};
test('1°Set');
它保持不变,是否有人知道如何将其转换为类似DOM的版本?
答案 0 :(得分:3)
我有一个以下问题,我正在构建使用来自ajax调用的数据流的应用程序,因此即将到来的数据将在json字符串中进行转义。
示例:
1°Set
听起来你遇到了问题,因为你的后端提供的JSON看起来像:
{
"something": "1°Set"
}
而不是字符串“1°Set”,而是提供相当于“1°Set”的HTML源代码。这看起来非常不必要。我无法看到在JSON中使用HTML转义的充分理由,除非您实际上希望您的JSON实际包含HTML源代码的一部分(包含格式和所有内容),而不仅仅是字符串。
我的建议:让我们保持简单,而不是像:
{
"something": "1°Set"
}
或等效地使用JSON语法正确地转义它:
{
"something": "1\u00b0Set"
}
现在,您将获得一个可以轻松显示的纯字符串,例如在element.textContent
或element.value
内或其他任何位置。您甚至不需要任何转换。