1

私は HTML コーディングは初めてで、HTML にはその使用のために予約された文字がいくつかあり、文字コードでいくつかの文字を表示することも知っています。例えば ​​-:

Œ  is   Œ
©  is   ©
®  is    ®

std::string に HTML ソースがあります。それらを実際の形式に解読し、std::string から置き換えるにはどうすればよいですか? ソースが利用可能なライブラリはありますか、それともマクロプリプロセッサを使用して実行できますか?

4

3 に答える 3

2

自動的に変換できる HTML/XML パーサーを使用することをお勧めします。HTML を手作業で正しく解析することは非常に困難です。自分でやりたい場合は、Boost String Algorithms ライブラリが便利な置換関数を提供しています。

于 2010-03-10T17:37:13.320 に答える
1
Œ  is   Œ

いいえ、そうではありません。Œ「PARTIAL LINE BACKWARD」です。ā の正しい数値実体はŒŒです。

于 2010-03-10T18:34:53.430 に答える
0

数値エンティティの 1 つの方法は、 のような正規表現を使用し&#([0-9]+);、数値を取得して ASCII 文字に変換することです (おそらくsprintfC++ で)。

名前付きエンティティについては、マッピングを作成する必要があります。おそらく単純な文字列置換を行って数値に変換してから、上記の方法を使用できます。W3C はここにテーブルを持っています: http://www.w3.org/TR/WD-html40-970708/sgml/entities.html

しかし、文字列内の大量の HTML を読み取ったり解析したりしようとしている場合は、HTML パーサーを使用する必要があります。SOに関する多くの質問を検索してください。

于 2010-03-10T17:58:37.793 に答える