仕事をするための標準ライブラリ関数はありません。オープン ソースの世界では、多数の実装が利用可能である必要があります。HTML を処理する必要があるほぼすべてのプログラムには実装があります。
この問題には 2 つの側面があります。
- ソース文字列で HTML エンティティを検索します。
- その場所に適切な置換テキストを挿入します。
可能な限り短いエンティティは「&x;」であるため (しかし、知る限り、それらはすべてアンパサンドとセミコロンの間に少なくとも 2 文字を使用します)、可能な限り最長の UTF-8 文字表現は 4 バイトであるため、常に文字列を短縮します。そのため、その場で安全に編集することができます。
Kernighan と Pike による「 The Practice of Programming 」に HTML エンティティのデコードの図がありますが、多少「通りすがり」に行われています。トークナイザーを使用してエンティティを認識し、バイナリ検索を使用して置換を識別できるように、エンティティ名と置換値の並べ替えられたテーブルを使用します。これは、非アルゴリズム エンティティ名にのみ必要です。「ß」としてエンコードされたエンティティについては、アルゴリズム技術を使用してデコードします。