【问题标题】:How to show utf-8 decoded value in vuejs? [duplicate]如何在 vuejs 中显示 utf-8 解码值? [复制]
【发布时间】:2022-02-10 14:33:01
【问题描述】:

要求: 通过 vuejs 中的 v-html 属性来解码 utf8 K& #2446;Ler 的数据

问题: 不知道如何将 displayFullUserName 传递给具有 Armin K& #2446;Ler 值的数据工具提示,以便在灰色布局中反映 Armin Koler

发现 下图显示了乱码数据 K঎Ler,因为它不是由 v-html 呈现的。 我有一个数据工具提示属性,它在工具提示视图上显示为 grey。 现在,我不知道如何解决这个问题,因为上面呈现的实际文本是由 v-html 标记。

 <label
   v-bind:data-tooltip="displayFullUserName"
   v-html="displayFullUserName"
 />

computed() {
return this.displayFullUserName;
}

【问题讨论】:

  • 一种方式就像htmlEntity2utf8(s) { const t= document.createElement('span'); t.innerHTML = s; return t.textContent } 不确定是否有更现代的方式来进行这种常见的转换
  • 正确的解决方案是一开始就不对其进行 HTML 编码。
  • 我是从 api 获取的,忍不住@gre_gor
  • K&amp; #2446;Ler 不会产生“Köler”。应该是K&amp;#246;ler
  • @Bravo 感谢您的解决方案有效。把你的解决方案放在答案中

标签: javascript html vue.js utf-8


【解决方案1】:

它适用于以下解决方案

htmlEntity2utf8(s) { 
 const t= document.createElement('span'); t.innerHTML = s; 
 return t.textContent 
}

为此感谢@Bravo。

【讨论】:

  • 这会执行 JavaScript。 htmlEntity2utf8('&lt;img src="dummy" onerror="alert(\'xss\')"&gt;')
  • @gre_gor - 嗯? &lt;img src="dummy" onerror="alert(\'xss\')"&gt; 来自哪里?与 OP 代码无关!
  • @Bravo 它来自哪里并不重要。该功能不安全,有更好的解决方案。
  • @gre_gor "更好的解决方案" ... a) 发布这些更好的解决方案之一,只发布一个,并且 b) 由于原始代码是 v-html="displayFullUserName",那么无论如何,不​​安全已经存在 - 当然是 @ 987654325@ 已经清理完毕
  • @Bravo a) 它在我发布的重复目标中。 b)我不相信它,并且该功能可能不仅仅用于这种特定情况。此外,本网站上的问答需要对可能没有经过清理输入的未来读者有用。
最近更新 更多