4

我试图找到一种方法来模仿stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncodingiPhone 的行为,使用 C#(用于 Windows Phone)。

我对 iPhone 编程一无所知,对它的网络搜索似乎没有提供任何文档页面来解释它实际上做了什么来帮助我弄清楚如何模仿它。我的意思是,我可以看到它使用编码“百分比转义”字符串,但我找不到任何示例来确认我将获得的输出是否正确。它只是一个简单的 URL 编码吗?

4

3 回答 3

4

我不太确定我是否理解您的问题,但HttpUtility.UrlEncode可能是您正在寻找的。在 MSDN 你会发现它的定义和例子。

更新:这是 Apple 的官方文档,关于您提到的 iOS 方法。

于 2012-06-29T22:25:37.460 回答
0

试试这个网址

  var uri = new Uri (url);
    var nsurl = new NSUrl (uri.GetComponents (UriComponents.HttpRequestUrl, UriFormat.UriEscaped));
    UIApplication.SharedApplication.OpenUrl (nsurl);
于 2013-04-10T03:02:09.347 回答
0

虽然这个问题已经很老了,但对于那些仍在寻找答案的人HttpUtility.UrlPathEncode来说:C# 是否等同stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]于 Objective C。这是在移动应用程序/iOS/iPhone 应用程序 (Xamarin) 中编写电子邮件等时应该使用的。HttpUtility.UrlEncode和之间的区别HttpUtility.UrlPathEncode是 -

UrlEncode 方法将每个空格字符转换为加号 (+)。UrlPathEncode 方法将每个空格字符转换为字符串“%20”,它以十六进制表示法表示一个空格。在对 URL 的路径部分进行编码时使用 UrlPathEncode 方法,以保证解码后的 URL 一致,无论哪个平台或浏览器执行解码。

此外,尽管 MSDN 文档建议使用UrlEncode而不是UrlPathEncode,但只有后者才能在引用的场景中起作用。

[更新] 在 Android (Xamarin) 中不起作用,如果您有编码字符串,则需要使用HttpUtility.UrlDecode将它们解码回来。

于 2016-08-17T17:14:03.313 回答