Delphi中html解码的问题

Delphi中html解码的问题,delphi,Delphi,我对Delphi 10.3.3中的tnetencode.HTML.Decode有问题 似乎解码功能不正常,但可能我这里做错了什么 var s := TNETEncoding.HTML.Decode('carrière'); 以s为单位返回: 'carrière' 它应该是“carrière”,不带引号。见: 有什么地方我做错了吗?根据的官方文档,它只支持保留HTML字符的字符实体,&: THTMLEncoding仅编码保留的HTML字符:& 但它也

我对Delphi 10.3.3中的tnetencode.HTML.Decode有问题

似乎解码功能不正常,但可能我这里做错了什么

var s := TNETEncoding.HTML.Decode('carrière');
以s为单位返回:

'carrière'
它应该是“carrière”,不带引号。见:


有什么地方我做错了吗?

根据的官方文档,它只支持保留HTML字符的字符实体,&:

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

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

THTMLEncoding支持解码任何HTML数字字符引用,如&169;或&254;,以及保留HTML字符的字符实体引用:,&

因此,它支持的唯一命名字符实体是用于HTML保留字符的实体

事实上,文件强调并警告

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


幸运的是,Ian Boyd的答案包含解码HTML字符实体而非保留字符实体的代码。

根据的官方文档,它只支持保留HTML字符的字符实体,&:

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

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

THTMLEncoding支持解码任何HTML数字字符引用,如&169;或&254;,以及保留HTML字符的字符实体引用:,&

因此,它支持的唯一命名字符实体是用于HTML保留字符的实体

事实上,文件强调并警告

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

幸运的是,Ian Boyd的答案包含解码HTML字符实体的代码,而不是用于保留字符的代码