如何在 C# 中解码带有重音符号的 url

How to decode a url with accents in C#

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

WebUtility.HtmlDecode("%E9")

不起作用。 它放了一个?符号而不是 é。

我对此进行了测试,发现 HttpUtility.UrlDecode("%E9") return 是您提到的问号。看来您必须手动指定适当的编码才能使其与 %E9 编码值一起正常工作。

你可以试试:

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

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

两者都应该 return 字符按您的预期解码。

对于 Url 解码,您应该使用 UrlDecode 而不是 HtmlDecode。此外,您需要指定编码才能使其工作,因为编码值 %E9 不是 UTF-8 值,默认情况下 UrlDecode returns 字符串使用 [=12= 解码].

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

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