我正在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);
答案 0 :(得分:0)
我是否纠正这部分代码用ASCII代码替换
!*'();:@&=+$,/?%#[]
符号?
不完全是:CFURLCreateStringByAddingPercentEscapes
的参数4指定除了基于RFC 3986的非合法URL字符之外的要转义的字符。由于字符串传递的字符不受百分比编码的影响,对于RFC 3986,结果将与您通过在C#中转义URI而得到的结果不同。
如果有人知道C#我做得对吗?
Uri.EscapeUriString
方法看起来更匹配,但它会使一些合法的RFC 3986字符未编码。