C#中相当于stringByAddingPercentEscapesUsingEncoding的方法是什么?

4
我正在尝试找到一种方法来模仿iPhone上stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding的行为,使用C#(适用于Windows Phone)。
我对iPhone编程一无所知,通过网络搜索也没有找到任何文档页面可以解释它实际做什么来帮助我模仿它。我的意思是,我能看到它使用编码“百分比转义”一个字符串,但我找不到任何示例来确认输出是否正确。它只是一个简单的URL编码吗?

11
天哪,是玛丽·波平斯想出了这些名字吗? - Robert Harvey
3个回答

4

请在回答中概述您的链接,以便有一些上下文信息。仅提供链接的答案可能会出现链接失效和其他许多问题。 - Robert Harvey
我的问题是我不知道那个iPhone函数的作用(因为我没有看到它的输出示例),所以我不知道在C#中哪个函数可以复制它。 - 404 Not Found
404,我和一个iOS开发者朋友交流过。他说这个方法可以将字符串格式化为URL(即替换空格和特殊字符)。如果是这样的话,我提到的方法也能做到同样的效果。 - Andre Calil

0

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

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

此外,尽管MSDN文档建议使用UrlEncode而不是UrlPathEncode,但只有后者适用于引用的情况。

【更新】在Android(Xamarin)中不起作用,如果您已经编码了字符串,则需要使用HttpUtility.UrlDecode将其解码回来。


0

尝试使用这个来处理URL:

  var uri = new Uri (url);
    var nsurl = new NSUrl (uri.GetComponents (UriComponents.HttpRequestUrl, UriFormat.UriEscaped));
    UIApplication.SharedApplication.OpenUrl (nsurl);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接