我是HTML编码的新手,我知道HTML有一些保留字符供其使用,它还会根据字符代码显示一些字符。例如 - :
Œ is Œ
© is ©
® is ®
我在std :: string中有HTML源代码。我怎样才能将它们解析为实际形式并替换为std :: string?是否有任何可用源代码库或可以使用宏预处理器完成?
答案 0 :(得分:2)
我建议使用一些可以自动为您进行转换的HTML / XML解析器。正确解析HTML非常困难。如果你坚持自己动手,Boost String Algorithms库提供了有用的替换功能。
答案 1 :(得分:1)
Œ is Œ
不,不是。 Œ
是'PARTIAL LINE BACKWARD'。 Œ的正确数字实体是Œ
和Œ
。
答案 2 :(得分:0)
数字实体的一种方法是使用正则表达式,如&#([0-9]+);
,获取数值并将其转换为ASCII字符(可能在C ++中使用sprintf
)。
对于命名实体,您需要构建映射。你可以做一个简单的字符串替换来转换为数字,然后使用上面的方法。 W3C在此处有一个表格:http://www.w3.org/TR/WD-html40-970708/sgml/entities.html
但是,如果您尝试在字符串中读取或解析一堆HTML,则应使用HTML解析器。在SO上搜索许多问题。