使用哪种 HttpUtility 解码方法

本文关键字:解码 方法 HttpUtility | 更新日期: 2023-09-27 18:20:35

这可能是

一个愚蠢的问题,但每次都会让我感到困惑。

HttpUtility有方法HtmlDecodeUrlDecode。这两种方法是否可以解码我可能找到的任何内容(与HTML/Http相关(?我什么时候必须使用它们,我应该使用哪一个?

刚才我遇到了一个错误。这是我的错误日志:

Payment receiver was not payment@mysite.com. (it was payment%40mysite.com).

但是,在使用之前,我将电子邮件地址包装在HttpUtility.HtmlDecode中。事实证明,我必须改用.UrlDecode,但是此电子邮件地址不是来自URL,因此这对我来说并不明显。

有人可以澄清一下吗?

使用哪种 HttpUtility 解码方法

请参阅 htmlencode 和 urlencode 是什么意思?

这与你的情况相反,但本质上你需要在任何时候使用UrlEncode/Decode,只要你使用各种地址(urls,是的,电子邮件地址(。 HtmlEncode/Decode用于通常由浏览器呈现的代码(html/xml 标记(。

同样的编码也用于表单POST请求。

我的猜测是"裸体"阅读它而不解码它。

HTML 编码/解码仅用于转义包含字符的字符串,否则这些字符将被解释为 html 控制字符。 该过程将字符转换为 html 实体,然后再次返回。

URL编码是为了解决Uris中不允许使用许多字符的事实;或者因为它们也可能被误解。 因此使用百分比编码。

百分比编码也用于 http 请求的正文中。

当然,在这两种情况下,它也是一种在独立于字符集的请求/响应中表达特定字符代码的方式;但同样,解释特定代码的含义也可能取决于了解特定字符集。 通常,您不必担心这一点 - 但它可能很重要(尤其是在HTML情况下(。

URLEncode 将 URL 中不允许的字符转换为可解析为 URL 的等效字符。 在您的示例中,@ 变为 %40。 URLDecode扭转了这一点。

HTMLEncode 类似于 URLEncode,但目标环境是嵌套在 HTML 中的文本。 这有助于浏览器不会将您的内容作为 HTML 插入,但在呈现时,它应该看起来像解码版本。 HTMLDecode扭转了这一点。

当您看到%xx时,这意味着发生了百分比编码 - 这是一个URL编码方案,因此您需要使用UrlEncode/UrlDecode

HtmlEncodeHtmlDecode方法用于编码和解码HTML显示的元素 - 因此&之类的东西被编码为&>编码为>