System.Net.HttpUtility.HtmlEncode не кодирует # - PullRequest
1 голос
/ 29 июля 2011

Мне нужно закодировать URL в моем приложении WP7. Класс, который я использую dosent, похоже, кодирует # (%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

Редактировать : я пробовал UrlEncode и это не помогло (см. Ниже). Читая документ MSDN, он не избежит #. Я не могу использовать класс 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

Ответы [ 2 ]

8 голосов
/ 29 июля 2011

Символ # не обязательно должен быть в кодировке HTML.

Если вы ожидаете, что результат будет %23, вам следует взглянуть на UrlEncode вместо:

string encoded = HttpUtility.UrlEncode("#");    // "%23"

EDIT ...

Поддерживают ли библиотеки WP7 EscapeDataString?

string encoded = Uri.EscapeDataString("#");    // "%23"
2 голосов
/ 29 июля 2011

Я думаю, что вы ищете UrlEncode , а не HtmlEncode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...