1

I am rewriting iPad application on Windows 8.

in xcode there is:

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

Am i correct that this part of code replaces those !*'();:@&=+$,/?%#[] symbols with ASCII codes?

And if somebody knows C# am i doing it right:

string data = Uri.EscapeDataString(myString);
4

1 回答 1

0

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

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

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

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

于 2013-11-08T16:24:34.550 回答