我可以在.NET CF上使用什么来替代HttpUtility.UrlEncode

时间:2009-05-25 19:30:23

标签: .net compact-framework

我需要将.NET代码移动到Compact Framework。该代码使用HttpUtility.UrlEncode对查询参数进行编码,但CF上没有System.Web。我可以用什么呢?

4 个答案:

答案 0 :(得分:12)

使用Uri.EscapeDataString。它几乎相当,而且可能更好,并且包含在NetCF中。

More info on their differences

答案 1 :(得分:0)

您可以查看捆绑mono's implementation(可选择简化)。不过,我不知道有多少依赖项需要引入。它可能是也可能不可行。

答案 2 :(得分:0)

你可能不得不自己动手,甚至更好地作弊。使用反射器,你会很快发现UrlEncode有许多重载方法,调用只需要字符串参数最终将字符串转换为字节数组并调用内部方法的版本。

修改:在版权违规的情况下删除了代码段...

答案 3 :(得分:0)

我使用了Uri.EscapeUriString,因为Uri.EscapeDataString对完整字符串进行编码,而不仅仅是参数,例如

http://website.com/a/abc{d}d 

使用EscapeDataString,它会转换为:

http%3A%2F%2Fwebsite.com%2Fa%2Fabc%7Bd%7Dd

使用Uri.EscapeUriString,它正确地变为:

http://website.com/a/abc%7Bd%7Dd