我正在开发一个asp.net mvc web应用程序。现在,我有一个操作系统的值,等于:-

我使用以下代码构建包含上述值的url,如下所示:
var query = HttpUtility.ParseQueryString(string.Empty);
query["osName"] = OperatingSystem;
var url = new UriBuilder(apiurl);
url.Query = query.ToString();
string xml = client.DownloadString(url.ToString());但是生成的url将包含操作系统的下列值:
osName=Microsoft%u00ae+Windows+Server%u00ae+2008+Standard因此,UriBuilder将注册符号编码为%u00ae+,这是错误的,因为当我尝试使用在线站点(如http://meyerweb.com/eric/tools/dencoder/ )解码%u00ae+时,它不会将%u00ae+解码为注册符号?所以,请大家注意一下,我怎样才能把注册标志发送到我的网址里?这是UrilBuilder内部的问题吗?
谢谢
编辑这将清楚地说明我的问题。现在我把资产名称值传递给get现在查询“assetName”将得到正确的值。但是在查询中,值将被错误地编码(不会使用UTF8进行编码)!

发布于 2016-08-05 12:37:02
试试这个:
url.Query = Uri.EscapeUriString(HttpUtility.UrlDecode(query.ToString()));如前所述,HttpUtility.ParseQueryString() always encodes special characters to unicode
发布于 2016-08-12 12:08:11
在将数据添加到查询字符串之前,使用Uri.EscapeDataString()转义数据(包含任何特殊字符)
https://stackoverflow.com/questions/38601784
复制相似问题