首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UriBuilder未能编码UriBuilder注册标志

UriBuilder未能编码UriBuilder注册标志
EN

Stack Overflow用户
提问于 2016-07-27 00:11:22
回答 2查看 1.2K关注 0票数 10

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

我使用以下代码构建包含上述值的url,如下所示:

代码语言:javascript
复制
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将包含操作系统的下列值:

代码语言:javascript
复制
osName=Microsoft%u00ae+Windows+Server%u00ae+2008+Standard

因此,UriBuilder将注册符号编码为%u00ae+,这是错误的,因为当我尝试使用在线站点(如http://meyerweb.com/eric/tools/dencoder/ )解码%u00ae+时,它不会将%u00ae+解码为注册符号?所以,请大家注意一下,我怎样才能把注册标志发送到我的网址里?这是UrilBuilder内部的问题吗?

谢谢

编辑这将清楚地说明我的问题。现在我把资产名称值传递给get现在查询“assetName”将得到正确的值。但是在查询中,值将被错误地编码(不会使用UTF8进行编码)!

EN

回答 2

Stack Overflow用户

发布于 2016-08-05 12:37:02

试试这个:

代码语言:javascript
复制
url.Query = Uri.EscapeUriString(HttpUtility.UrlDecode(query.ToString()));

如前所述,HttpUtility.ParseQueryString() always encodes special characters to unicode

票数 5
EN

Stack Overflow用户

发布于 2016-08-12 12:08:11

在将数据添加到查询字符串之前,使用Uri.EscapeDataString()转义数据(包含任何特殊字符)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38601784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档