2012-01-18 38 views
3

这可能是一个愚蠢的问题,但它每次都让我感动。哪个HttpUtility使用解码方法?

HttpUtility具有方法HtmlDecodeUrlDecode。这两个方法是否可以解码任何内容(Html/Http相关),我可能会发现它?我什么时候需要使用它们?我应该使用哪一个?

刚才我打错了。这是我的错误日志:

Payment receiver was not [email protected] (it was payment%40mysite.com). 

但是,我在这里包裹中的电子邮件地址HttpUtility.HtmlDecode使用它之前。事实证明,我必须改用.UrlDecode,但这个电子邮件地址不是来自URL,所以这对我来说并不明显。

有人可以澄清这一点吗?

+0

此内容是否来自GET请求?(AJAX等你没有看到它的URL,但它仍然是GET请求)。 – Rolice 2012-01-18 15:25:48

回答

3

What is meant by htmlencode and urlencode?

这是你的情况相反,但本质上你需要使用你正在使用排序(网址是的,电子邮件地址)的地址以UrlEncode /解码随时随地。 HtmlEncode/Decode适用于浏览器通常呈现的代码(html/xml标签)。

2

该表单POST请求中也使用了相同的编码。

我的猜测是“裸体”而不解码它。

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

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

百分比编码也用在http请求的主体中。

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

+0

这种编码仅用于URL和POST请求,还是其他地方? – Oliver 2012-01-18 15:23:32

+0

好吧,它可以在任何地方使用 - 但它最常用于URL,URI和URN。同样,在HTTP上捎带的其他协议当然也可以使用百分比编码。 – 2012-01-18 15:29:41

2

当你看到%xx这意味着percent encoding已经发生 - 这是一个URL编码方案,所以你需要使用UrlEncode/UrlDecode

HtmlEncodeHtmlDecode方法可用于对HTML显示编码和解码的元素 - 所以像&得到编码以&>>

2

URLEncode将URL中不允许的字符转换为可解析为URL的字符等价物。在你的例子中@变成了%40。 URLDecode反转这个。

HTMLEncode与URLEncode类似,但目标环境是HTML内部的文本NESTED。这有助于浏览器将您的内容作为HTML进行拼版处理,但渲染时应该看起来像解码版本。 HTMLDecode反转了这一点。

相关问题