帮助理解代码

时间:2013-11-08 16:07:51

标签: c# objective-c ipad windows-8

我正在Windows 8上重写iPad应用程序。

在xcode中有:

- (NSString *)urlEncodeString: (NSString *) string{
return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)string,NULL,CFSTR("!*'();:@&=+$,/?%#[]"),kCFStringEncodingUTF8));
}

我是否正确,这部分代码用ASCII代码替换了那些!*'();:@& = + $,/?%#[]符号?

如果有人知道C#我做得对:

string data = Uri.EscapeDataString(myString);

1 个答案:

答案 0 :(得分:0)

  

我是否纠正这部分代码用ASCII代码替换!*'();:@&=+$,/?%#[]符号?

不完全是:CFURLCreateStringByAddingPercentEscapes的参数4指定除了基于RFC 3986的非合法URL字符之外的要转义的字符。由于字符串传递的字符不受百分比编码的影响,对于RFC 3986,结果将与您通过在C#中转义URI而得到的结果不同。

  

如果有人知道C#我做得对吗?

Uri.EscapeUriString方法看起来更匹配,但它会使一些合法的RFC 3986字符未编码。