UrlEncode с определенной кодировкой в ​​Windows Phone 7? - PullRequest
5 голосов
/ 11 декабря 2011

В "обычном" .NET есть метод UrlEncode , который принимает параметр Encoding. Нет ли в .NET для WP7 такого UrlEncode метода?

Я нахожусь в Швеции и пытаюсь получить данные из службы REST, которая ожидает ISO-8859-1 в запросах (но отвечает в UTF-8). Выполняя поиск (input=frölunda) и просто используя UrlEncode, я получаю input=fr%C3%B6lunda, который возвращает очень странные результаты из-за "пропущенного" ö. Используя .NET UrlDecode с кодировкой iso-8859-1, я получаю input=fr%F6lunda, который возвращает ожидаемые результаты.

Должен ли я реализовать свой собственный UrlEncode?

1 Ответ

2 голосов
/ 11 декабря 2011

Интересно, похоже, что Microsoft соблюдает стандарт Silverlight. Википедия говорит:

[...] следует преобразовать все остальные символы в байты в соответствии с UTF-8, и затем кодировать эти значения в процентах. Это требование было введено в Январь 2005 г. с публикацией RFC 3986. Введены схемы URI до этой даты не затрагиваются.

Похоже, что они отказались от выбора кодировки, поскольку в любом случае разрешено только одно.

Кроме того, вы не единственный , имеющий эту проблему . Рекомендация: не изобретайте колесо и используйте уже написанный код , чтобы получить нужный HtmlEncode. (Помимо рекомендации использовать Uri.EscapeUriString вместо HttpUtility.UrlEncode на стороне клиента - но я не могу судить об этом.)

...