我有以下C#代码Uri uri = new Uri("http://localhost/query?param=%E2%80%AE");
,uri
将其解释为http://localhost/query?param=
而不是http://localhost/query?param=%E2%80%AE
。因此,http Web服务器获取http://localhost/query?param=
(没有此参数的值)。为什么它会破坏我的网址?如何使用HttpWebRequest
正确创建http://localhost/query?param=%E2%80%AE
?
P.S。我使用%E2%80%AE
获得System.Uri.EscapeDataString(Convert.ToString((char)8238))
。
答案 0 :(得分:1)
ToString()
将尝试将uri呈现为字符串。即,它将逃脱逃脱的角色。但是,转义的序列%E2%80%AE
不可打印。
改为使用AbsoluteUri
。
var uriStr = uri.AbsoluteUri; // "http://localhost/query?param=%E2%80%AE"
答案 1 :(得分:0)
这是对暴露方法的误用。