Ale*_*ber 6 objective-c url-encoding nsstring ios
2种方法之间的区别是什么,请 stringByAddingPercentEscapesUsingEncoding:与stringByReplacingPercentEscapesUsingEncoding:?
我已经多次阅读过NSString Class Reference但仍然没有得到它.
另外,还有一种方法可以强制这些方法编码"+"符号吗?
在我的iPhone应用程序中,我必须urlencode base64编码(即字母,数字,加号和斜杠)头像,最后使用该CFURLCreateStringByAddingPercentEscapes方法而不是上述方法...
- (NSString*)urlencode:(NSString*)str
{
return (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(__bridge CFStringRef) str,
NULL,
CFSTR("+/"),
kCFStringEncodingUTF8));
}
Run Code Online (Sandbox Code Playgroud)
Gui*_*rme 17
stringByAddingPercentEscapesUsingEncoding 将Unicode*字符转换为百分比转义格式.
stringByReplacingPercentEscapesUsingEncoding 将执行相反的操作,将百分比转义转换为Unicode*.
*实际上不是Unicode,而是您选择的编码.
例子:
NSString *rawText = @"One Broadway, Cambridge, MA";
NSString *encodedText = [rawText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Encoded text: %@", encodedText);
NSString *decodedText = [encodedText stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Original text: %@", decodedText);
Run Code Online (Sandbox Code Playgroud)
这是输出:
Encoded text: One%20Broadway,%20Cambridge,%20MA
Original text: One Broadway, Cambridge, MA
Run Code Online (Sandbox Code Playgroud)
缺点:stringByAddingPercentEscapesUsingEncoding不编码&符号(&)和斜杠(/)等保留字符
解决方法:CFURLCreateStringByAddingPercentEscapes改为使用Foundation功能.
资料来源:http://cybersam.com/ios-dev/proper-url-percent-encoding-in-ios
| 归档时间: |
|
| 查看次数: |
9582 次 |
| 最近记录: |