在Windows Phone 7中使用特定编码的UrlEncode?

jov*_*nas 5 c# iso-8859-1 windows-phone-7

在"常规".NET中,有一个UrlEncode方法,它接受一个Encoding参数.WP7的.NET中没有这样的UrlEncode方法吗?

我位于瑞典,我正在尝试从请求中需要ISO-8859-1的REST服务中检索数据(但是以UTF-8响应).当进行搜索(input=frölunda)并且只使用UrlEncode时input=fr%C3%B6lunda,由于"缺失"ö,我会得到非常奇怪的结果.使用带有iso-8859-1编码的.NET UrlDecode,我得到input=fr%F6lunda了返回所需的结果.

我是否必须实现自己的UrlEncode?

Hei*_*cht 2

有趣的是,微软似乎正在通过 Silverlight 遵循这一标准。维基百科说:

[...] 应该根据 UTF-8 将所有其他字符转换为字节,然后对这些值进行百分比编码。此要求于 2005 年 1 月随 RFC 3986 的发布而引入。在此日期之前引入的 URI 方案不受影响。

所以看起来他们放弃了编码的选择,因为无论如何只允许一种。

除此之外,您并不是唯一遇到此问题的人。建议是:不要重新发明轮子,而是使用已经编写的代码来获取您需要的 HtmlEncode。(除了建议使用Uri.EscapeUriString而不是HttpUtility.UrlEncode在客户端 - 但我无法判断。)