You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vue中处理数据库数据,将&amp解析为&

解决Vue中HTML实体双重转义显示问题

你的问题是数据库里的HTML内容被双重转义了——原本的&被转成&存在库中,Vue渲染时又把&转成了&amp,所以显示成了&。下面给你两种可行的解决办法:

方法一:用v-html直接解析HTML

Vue的v-html指令会直接解析内容中的HTML标签和实体,能自动把&转换成&。用法很简单:

<template>
  <div v-html="yourDatabaseContent"></div>
</template>

注意:如果内容是用户提交的非可信内容,用v-html可能存在XSS风险,需要先做内容过滤。

方法二:手动解码HTML实体

如果不想用v-html(比如不需要保留HTML标签),可以写个工具函数解码实体:

function decodeEntities(str) {
  const parser = new DOMParser();
  return parser.parseFromString(str, 'text/html').documentElement.textContent;
}

然后在Vue里通过计算属性处理数据:

<template>
  <div>{{ decodedContent }}</div>
</template>

<script>
export default {
  data() {
    return {
      rawData: '<p><strong>What is your favorite Play &amp; Earn Mechanic?</strong></p>'
    };
  },
  computed: {
    decodedContent() {
      const parser = new DOMParser();
      return parser.parseFromString(this.rawData, 'text/html').documentElement.textContent;
    }
  }
};
</script>

这种方式会把所有HTML标签去掉,只显示纯文本和正确解析的实体。

额外建议

如果能修改后端逻辑,最好在数据存入数据库时就避免双重转义,直接存储正确的&或者单次转义的&amp;,从根源解决问题。

内容的提问来源于stack exchange,提问作者IdontEvenEven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:45:30