HttpUtility.UrlEncode 使用四个十六进制数字而不是两个

问题描述 投票:0回答:1

不知道为什么,但是当我运行以下代码时

HtmlAnchor bestellenLink = (HtmlAnchor)e.Item.FindControl("bestellenLink");
var uriBuilder = new UriBuilder(Request.Url.AbsoluteUri);
var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
paramValues.Add("Test", HttpUtility.UrlEncode("ä"));
uriBuilder.Query = paramValues.ToString();
bestellenLink.HRef = uriBuilder.Uri.ToString();

我在

bestellenLink.HRef
中得到以下输出:

http://somedomain/somepage.aspx?Test=%25c3%25a4

而“ä”的正确 URL 编码应该是

%c3%a4
而不是
%25c3%25a4
。 我做错了什么?

谢谢, /弗朗西斯科

c# character-encoding url-encoding
1个回答
0
投票

我认为这是因为字符串以某种方式进行了双重编码。 % 编码为 %25。

© www.soinside.com 2019 - 2024. All rights reserved.