我在 Wordpress 页面中嵌入了一个 React 应用程序。它从 JSON api 中提取内容并将其显示在各个区域。
我的问题是来自 api 的所有文本内容都显示为转义&
字符,即显示与号应该在哪里。
我的 wordpress 页面具有<meta charSet="utf-8" />
我通常希望将其转换的页面,但对 React 内容没有影响。是不是因为渲染是在 React 中完成的?在哪种情况下,我需要以某种方式将 React 设置为使用 UTF-8?
我在 Wordpress 页面中嵌入了一个 React 应用程序。它从 JSON api 中提取内容并将其显示在各个区域。
我的问题是来自 api 的所有文本内容都显示为转义&
字符,即显示与号应该在哪里。
我的 wordpress 页面具有<meta charSet="utf-8" />
我通常希望将其转换的页面,但对 React 内容没有影响。是不是因为渲染是在 React 中完成的?在哪种情况下,我需要以某种方式将 React 设置为使用 UTF-8?
HTML(包括实体)在呈现为表达式时将呈现为字符串:
{htmlString}
为了解析 HTML,有dangerouslySetInnerHTML
prop:
<span dangerouslySetInnerHTML={{__html: htmlString }} />
顾名思义,这是不安全的,一般应该避免。如果字符串来自不受信任的来源或可被利用的来源,则可以将恶意代码呈现给客户端。
更可取的方法是专门解码实体,例如html-entities
:
import { Html5Entities } from 'html-entities';
const htmlEntities = new Html5Entities();
...
{htmlEntities.decode(htmlString)}
如果可能的话,可以通过首先不存储 HTML 实体来避免该问题。