如何在C#中使用重音解码网址

时间:2015-09-01 18:21:03

标签: c# unicode urldecode

我一直在尝试解码%E9(é)。

WebUtility.HtmlDecode("%E9")

不起作用。 它放了一个?标志而不是é。

2 个答案:

答案 0 :(得分:5)

我对此进行了测试,发现HttpUtility.UrlDecode("%E9")会返回您提到的问号。它似乎必须手动指定适当的编码才能正确使用%E9编码值。

您可以尝试:

HttpUtility.UrlDecode("%E9", System.Text.UnicodeEncoding.Default);

HttpUtility.UrlDecode("%E9", System.Text.UnicodeEncoding.UTF7);

两者都应该返回按预期解码的字符。

答案 1 :(得分:1)

对于Url解码,您应该使用UrlDecode而不是HtmlDecode。此外,您需要为此指定编码,因为编码值%E9不是UTF-8值,默认情况下UrlDecode返回使用UTF-8解码的字符串。

除了Lukasz的回答,您还可以使用:

HttpUtility.UrlDecode("%E9", System.Text.Encoding.GetEncoding("iso-8859-1"));