Javascript UTF-8符号在插入到dom时转换

Javascript UTF-8符号在插入到dom时转换,javascript,Javascript,我有一个问题,我正在构建一个应用程序,该应用程序使用来自ajax调用的数据流,因此传入的数据在json字符串中转义 示例:1°;设置 当我将该数据插入DOM时,其转换如下:1°Set 我不使用任何像jQuery这样的库,纯Javascript 我尝试将转换后的名称也存储在另一个位置,但似乎无法手动转换,我尝试了以下功能: var test = function(str) { console.log(unescape(encodeURIComponent(str)) ); c

我有一个问题,我正在构建一个应用程序,该应用程序使用来自ajax调用的数据流,因此传入的数据在json字符串中转义

示例:
1°;设置

当我将该数据插入DOM时,其转换如下:
1°Set

我不使用任何像jQuery这样的库,纯Javascript

我尝试将转换后的名称也存储在另一个位置,但似乎无法手动转换,我尝试了以下功能:

var test = function(str) {
    console.log(unescape(encodeURIComponent(str)) );
    console.log(decodeURIComponent(escape(str)) );
};

test('1°Set');
它保持不变,有人知道如何将其转换为类似DOM的版本吗

我有一个问题,我正在构建一个应用程序,该应用程序使用来自ajax调用的数据流,因此传入的数据在json字符串中转义

示例:
1°;设置

听起来您遇到了问题,因为后端提供的JSON看起来如下:

{
  "something": "1°Set"
}
您提供的不是字符串“1°集合”,而是相当于“1°集合”的HTML源代码。这看起来很不必要。我看不出在JSON中使用HTML转义的好理由,除非您确实希望JSON包含HTML源代码的一部分(包括格式和所有内容),而不仅仅是一个字符串

我的建议是:让我们保持简单,而是提供如下服务:

{
  "something": "1°Set"
}
或者使用JSON语法正确地转义:

{
  "something": "1\u00b0Set"
}

现在,您将看到JavaScript将收到一个可以轻松显示的普通字符串,例如在
element.textContent
element.value
或其他任何地方。您甚至不需要任何转换。

测试('hi')或测试('alert(1)')的预期输出是什么?我不明白这个问题<代码>°是学位符号的HTML符号。显然,将其放入HTML将显示学位符号,这就是重点。你到底想让它做什么?@Liam我知道问题是如何将表示字符串的一段HTML源代码转换为实际的字符串尝试使用.textContent而不是innerHTML?为什么你不能只传递Unicode字符如果您无法尝试
°代替
°