2010-03-10 79 views
1

我是HTML編碼新手,我知道HTML有一些保留字符供其使用,它還通過字符代碼顯示一些字符。例如 - :替換HTML源代碼中的特殊字符

Πis Π
© is © 
® is ® 

我有std :: string中的HTML源代碼。我怎麼能解密他們到他們的實際形式,並從std :: string替換?有沒有可用的源庫或可以使用宏預處理器來完成的庫?

+0

他們被稱爲「HTML實體」 – 2010-03-10 17:41:37

回答

2

我會推薦使用一些HTML/XML解析器,它可以自動爲您完成轉換。用手正確解析HTML是非常困難的。如果你堅持自己做,Boost字符串算法庫提供了有用的替換功能。

0

數字實體的一種方法是使用像&#([0-9]+);這樣的正則表達式,獲取數值並將其轉換爲ASCII字符(可能在C++中使用sprintf)。

對於您需要構建映射的命名實體。你可以做一個簡單的字符串替換來轉換爲數字,然後使用上面的方法。 W3C在此處有一個表格:http://www.w3.org/TR/WD-html40-970708/sgml/entities.html

但是,如果您嘗試讀取或解析字符串中的一堆HTML,則應該使用HTML解析器。搜索關於SO的許多問題。

1
Πis Π

不,它不是。 Œ是'部分線後退'。 Œ的正確數字實體是Œ和​​。

+0

我從這裏挑選它http://www.web-source.net/symbols.htm – cpx 2010-03-10 18:40:48

+0

責備微軟製作Windows-1252。 – kennytm 2010-03-10 20:10:07