我得到一个url字符串,并希望将其转换为合法的http url:
例如:
"http://one/two/three%four/five#five?six seven"
应变为"http://one/two/three%25four/five%23five?six%20seven"
但是,HttpUtility.UrlEncode
无效,因为它会对整个字符串进行编码(包括合法的"://"
)。
提前致谢
答案 0 :(得分:4)
看看你想要的是什么?
Uri uri = new Uri("http://one/two/three%four/#five?six seven");
string url = uri.AbsoluteUri + uri.Fragment;
// url will be "http://one/two/three%25four/#five?six%20seven#five?six%20seven"
答案 1 :(得分:0)
分裂和重新加入怎么样:
string url = "http://one/two/three%four/#five?six seven";
string encodedUrl = "http://" + string.Join("/", url.Substring(7).Split('/').Select(part => HttpUtility.UrlEncode(part)).ToArray());