Delphi中的html解码问题

爱德华

我在Delphi 10.3.3(rio)中使用TNETEncoding.HTML.Decode遇到问题。

似乎解码无法正常运行,但也许我在这里做错了。

var s := TNETEncoding.HTML.Decode('carrière');

以s返回:

'carrière'

它应该是“carrière”(无引号)。请参阅:https//www.convertstring.com/en/EncodeDecode/HtmlDecode

我在这里做错什么了吗?

安德烈亚斯·瑞布兰德(Andreas Rejbrand)

根据官方文档THTMLEncoding,它仅支持字符实体保留HTML字符"&<,和>

THTMLEncoding仅编码保留的HTML字符:"&<>

但是它也能够解码数字字符引用:

THTMLEncoding支撑解码任何HTML数字字符引用,如&#169;&#254;,以及保留的HTML字符的字符实体引用:&quot;&amp;&lt;&gt;

因此,唯一的命名字符实体,它支持都为HTML保留字符的那些"&<,和>

实际上,文档强调并警告

警告:不支持解码非保留字符(例如&apos;或)的字符实体引用&copy;输入数据不得包含任何其他字符实体引用。否则,输出数据可能会损坏。

幸运的是,这个SO问题(以及Ian Boyd的答案)包含用于解码HTML字符实体(保留字符除外)的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章