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

React测验应用API数据显示乱码问题:如何正确显示API数据?

解决React测验应用题目显示奇怪字符的问题

你遇到的问题根源是opentdb API返回的题目文本使用了HTML实体编码(比如"、&这类格式),直接渲染会把编码字符原样显示,所以才出现奇怪符号。你当前用的JSON.parse(JSON.stringify())只是做了深拷贝,完全没处理编码问题。

下面给两种可行的解决方法:

方法一:使用dangerouslySetInnerHTML

这是React官方提供的直接渲染HTML内容的方式,因为opentdb的公开题库内容是可靠的,不用担心XSS风险,可以放心使用:

<p dangerouslySetInnerHTML={{ __html: props.question }}></p>

方法二:手动解码HTML实体

如果不想用dangerouslySetInnerHTML,可以写一个解码函数处理文本:

function decodeHtmlEntities(text) {
  const parser = new DOMParser();
  const doc = parser.parseFromString(`<div>${text}</div>`, 'text/html');
  return doc.firstChild.textContent;
}

渲染时调用这个函数即可:

<p>{decodeHtmlEntities(props.question)}</p>

两种方法都能把&quot;这类编码转换成正常的引号、符号,让题目显示恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:25:15