今日は自由時間があったので、entities.c、entities.h というデコーダーをゼロから作成しました。
外部連携のある唯一の機能は
size_t decode_html_entities_utf8(char *dest, const char *src);
src
の場合 ヌル ポインターの場合、文字列は dest
から取得されます つまり、エンティティはその場でデコードされます。それ以外の場合、デコードされた文字列は dest
に配置されます - strlen(src) + 1
を保持するのに十分な大きさのバッファを指す必要があります 文字 - および src
変更されません。
この関数は、デコードされた文字列の長さを返します。
大規模なテストを行っていないため、バグの可能性が高いことに注意してください...