我在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
我在这里做错什么了吗?
根据官方文档THTMLEncoding
,它仅支持字符实体保留HTML字符"
,&
,<
,和>
:
THTMLEncoding仅编码保留的HTML字符:
"&<>
。
但是它也能够解码数字字符引用:
THTMLEncoding支撑解码任何HTML数字字符引用,如
©
或þ
,以及保留的HTML字符的字符实体引用:"
,&
,<
,>
。
因此,唯一的命名字符实体,它支持都为HTML保留字符的那些"
,&
,<
,和>
。
实际上,文档强调并警告
警告:不支持解码非保留字符(例如
'
或)的字符实体引用©
。输入数据不得包含任何其他字符实体引用。否则,输出数据可能会损坏。
幸运的是,这个SO问题(以及Ian Boyd的答案)包含用于解码HTML字符实体(保留字符除外)的代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句