React应用转义的HTML实体(例如&符号)

Ste*_*eve 7 wordpress escaping utf-8 reactjs

我在Wordpress页面中嵌入了一个React应用程序。它从JSON API中提取内容,并将其显示在各个区域中。

我的问题是,来自api的所有文本内容都显示为转义&字符,即显示与号的位置。

我的wordpress页面<meta charSet="utf-8" />通常会进行转换,但是对React内容没有影响。是因为渲染是在React中完成的吗?在哪种情况下,我需要以某种方式将React设置为使用UTF-8?

Est*_*ask 5

HTML(包括实体)在以表达式形式呈现时将以字符串形式呈现:

{htmlString}
Run Code Online (Sandbox Code Playgroud)

为了解析HTML,有dangerouslySetInnerHTMLprop:

<span dangerouslySetInnerHTML={{__html: htmlString }} />
Run Code Online (Sandbox Code Playgroud)

顾名思义,它是不安全的,通常应避免使用。如果字符串来自不受信任的来源或可以被利用的来源,则可以将恶意代码呈现给客户端。

最好的方法是专门解码实体,例如html-entities

import { Html5Entities } from 'html-entities';
const htmlEntities = new Html5Entities();

...

{htmlEntities.decode(htmlString)}
Run Code Online (Sandbox Code Playgroud)

如果可能的话,可以通过不首先存储HTML实体来避免该问题。