代码之家  ›  专栏  ›  技术社区  ›  cpx

替换HTML源中的特殊字符

  •  1
  • cpx  · 技术社区  · 14 年前

    我是html编码的新手,我知道html有一些保留字符供其使用,而且它还按字符代码显示一些字符。例如-:

    Œ  is   Œ
    ©  is   ©
    ®  is    ®
    

    我在STD::字符串的HTML源代码。我如何将它们解密成它们的实际形式,并从STD::字符串替换?是否有可用的源库,或者可以使用宏预处理器来完成?

    3 回复  |  直到 14 年前
        1
  •  2
  •   Tronic    14 年前

    我建议使用一些html/xml解析器,它可以自动为您进行转换。手工正确解析html是非常困难的。如果坚持自己做,boost字符串算法库提供了有用的替换函数。

        2
  •  1
  •   Ms2ger    14 年前
    Œ  is   Œ
    

    不,不是。 Œ 是“部分线路向后”。的正确数字实体是 Œ Œ .

        3
  •  0
  •   DisgruntledGoat    14 年前

    数字实体的一种方法是使用如下正则表达式 &#([0-9]+); ,获取数值并将其转换为ascii字符(可能是 sprintf 在C++中。

    对于命名实体,您需要构建映射。你可以做一个简单的字符串替换来转换成数字,然后使用上面的方法。W3C在这里有一个表: http://www.w3.org/TR/WD-html40-970708/sgml/entities.html

    但是,如果您试图读取或解析字符串中的一堆html,则应该使用html解析器。找这么多问题。