如何解码C中的HTML实体?

Fel*_*peC 19 html c

我对unescaping文本很感兴趣,比如:在C.中\映射到\有没有人知道一个好的库?

作为参考维基百科XML和HTML角色实体参考列表.

Chr*_*oph 36

我今天有空闲时间从头开始编写解码器:entities.c,entities.h.

外部链接的唯一功能是

size_t decode_html_entities_utf8(char *dest, const char *src);
Run Code Online (Sandbox Code Playgroud)

如果src是空指针,则将取出该字符串dest,即实体将被就地解码.否则,将放入已解码的字符串dest- 该字符串应指向足以容纳strlen(src) + 1字符的缓冲区- 并且src将保持不变.

该函数将返回已解码字符串的长度.

请注意,我没有进行任何广泛的测试,因此很有可能出现错误......

  • 有用的代码,但由于你可能在原地复制,你必须使用`memmove()`才能安全; 当源和目标重叠不可靠时使用`memcpy()`. (2认同)
  • @JonathanLeffler:谢谢,已修复;不要相信您从互联网上的随机人员那里获得的代码;) (2认同)

Fel*_*peC 0

我编写了自己的 unescape 代码;非常简化,但可以完成工作:pn_util.c