System.Net.HttpUtility.HtmlEncode不编码#

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)

Luk*_*keH 8

#符号不需要进行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)