如何转换这些字符?

时间:2019-03-29 12:52:50

标签: javascript react-native character-encoding

我正在React中制作一个应用程序,该应用程序可以接收特定的html页面并在React中转换为页面,但是当在<Text>中放入一些字符串时,这些字符不会转换:

enter image description here

&#8212;的表示形式为

这些字符叫什么?在React中有没有一种方法可以将这些字符转换为相应的文本?

1 个答案:

答案 0 :(得分:2)

  

这些符号称为 HTML符号实体。   普通键盘上不存在技术和货币符号。

     

如果不存在实体名称,则可以使用实体编号,小数或   十六进制参考。

您知道的单个html实体的快速解决方法:

    <Text>
      {yourText.replace(/&#8212;/gi, '-')}
    </Text>

您可以使用this npm模块在渲染之前解码文本:

多个html实体的示例

const re = /&[^\s]*;/gi;
const allHtmlEntities = [];
while ((match = re.exec(youtText)) != null) {
  const htmlEntity = yourText.substring(match.index, 7);
  if (allHtmlEntities.indexOf(htmlEntity) === -1) {
    allHtmlEntities.push(htmlEntity);
  }
}

const entities = new Entities();

for (let i = 0; i < allHtmlEntities.length; i++) {
  const decodedValue = entities.decode(allHtmlEntities[i]);
  yourText = yourText.replace(new RegExp(allHtmlEntities[i], 'g'), decodedValue);
}