当从System.Web使用HttpUtility时,我发现每次调用方法.ParseQueryString时,我都将特殊字符编码为它们的unicode等效表示形式。我已经尝试了许多不同的编码类型,并且都似乎产生了相同的结果。我的代码的一个例子是在这里:HttpUtility.ParseQueryString()总是将特殊字符编码为unicode
string text = "ich möchte diese Bild für andere freigeben"
var urlBuilder = new UriBuilder(url);
var query = HttpUtility.ParseQueryString(urlBuilder.Query, Encoding.UTF8);
query["text"] = text;
urlBuilder.Query = query.ToString();
string finalUrl = urlBuilder.ToString();
而且在finalUrl
字符串,我会从这个收到将是:
文本= ICH + M%u00f6chte + diese +画报+ F%u00fcr + ANDERE + freigeben
我一直在使用Encoding.UTF8
,和Encoding.Default
,他们都产生相同的结果尝试。我能做些什么,以达到我想要的URL编码的格式:
文本= ICH%20米%C3%B6chte%20diese%20Bild%20F%C3%BCR%20andere%20freigeben
像往常一样,在此先感谢您的帮助/建议!
你会推荐什么? – tezromania 2014-11-06 20:56:37
正如一个侧面说明,你可能想要显示它们为非编码,但URL规范清楚地表明这些应该被编码。 https://www.ietf.org/rfc/rfc1738.txt(在第2页附近) – Nathan 2014-11-06 21:46:43
它不是我不想编码它,它是我希望它显示为标准的url编码与unicode编码。 – tezromania 2014-11-06 21:49:10