我一直在尝试解码%E9(é)。
WebUtility.HtmlDecode("%E9")
不起作用。 它放了一个?标志而不是é。
答案 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"));