Tom*_*res 1 c# windows-phone-7
我需要在WP7应用程序中编码一个url.使用dosent的类似乎编码#(to %23).什么想法我做错了什么?
string foo = InkBunnyUrls.Login + "&username=" + txtUsername.Text + "&password=" + txtPassword.Password;
//foo = https://inkbunny.net/api_login.php?output_mode=xml&username=test&password=foobar#1
string url = System.Net.HttpUtility.HtmlEncode(foo);
// url = https://inkbunny.net/api_login.php?output_mode=xml&username=test&password=foobar#1
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试了UrlEncode并且该工作(见下文).阅读msdn doc它不会逃脱#.我不能使用system.web类,因为它不在WP7中
string foo = InkBunnyUrls.Login + "&username=" + txtUsername.Text + "&password=" + txtPassword.Password;
//foo = https://inkbunny.net/api_login.php?output_mode=xml&username=test&password=foobar#1
string url = Uri.EscapeUriString(foo);
// https://inkbunny.net/api_login.php?output_mode=xml&username=test&password=foobar#1
Run Code Online (Sandbox Code Playgroud)
该#符号不需要进行HTML编码.
如果你期望结果是%23那么你应该看看UrlEncode:
string encoded = HttpUtility.UrlEncode("#"); // "%23"
Run Code Online (Sandbox Code Playgroud)
编辑...
WP7库是否支持EscapeDataString?
string encoded = Uri.EscapeDataString("#"); // "%23"
Run Code Online (Sandbox Code Playgroud)