我正在尝试使用C#(对于Windows Phone)找到一种模仿来自iPhone的stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
行为的方法。
我对iPhone编程一无所知,网络搜索似乎没有提供任何文档页面可能解释它实际上做了什么来帮助我弄清楚如何模仿它。我的意思是,我可以看到它使用编码“百分之百逃逸”一个字符串,但我找不到任何示例来确认我将获得的输出是正确的。它只是一个简单的URL编码吗?
答案 0 :(得分:4)
我不确定我是否理解了您的问题,但HttpUtility.UrlEncode可能是您正在寻找的问题。在MSDN,您将找到它的定义和示例。
更新:Apple的this is the official doc,关于你提到的iOS方法。
答案 1 :(得分:0)
试试这个网址
var uri = new Uri (url);
var nsurl = new NSUrl (uri.GetComponents (UriComponents.HttpRequestUrl, UriFormat.UriEscaped));
UIApplication.SharedApplication.OpenUrl (nsurl);
答案 2 :(得分:0)
虽然这个问题很老,但对于那些仍在寻找答案的人来说:HttpUtility.UrlPathEncode
是目标C中的stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
的C#等价物。这是在编写电子邮件等时应该使用的内容。移动应用程序/ iOS / iPhone应用程序(Xamarin)。 HttpUtility.UrlEncode
和HttpUtility.UrlPathEncode
之间的差异是 -
UrlEncode方法将每个空格字符转换为加号字符(+)。 UrlPathEncode方法将每个空格字符转换为字符串“%20”,该字符串表示十六进制表示法的空格。在对URL的路径部分进行编码时使用UrlPathEncode方法,以保证解码的URL一致,无论哪个平台或浏览器执行解码。
此外,虽然MSDN文档建议使用 UrlEncode 而不是 UrlPathEncode ,但只有后者才能在引用的方案中使用。
[更新]在Android(Xamarin)中不起作用,如果您有编码字符串,则需要使用 HttpUtility.UrlDecode 对其进行解码。