我在谷歌搜索时遇到了麻烦。
Objective-C是否具有编码URI Component的等效方法?
http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
这似乎是一个非常常见的用例,但我在Objective-C中找不到任何关于它的文档。
感谢。
答案 0 :(得分:6)
答案 1 :(得分:1)
//encode URL string
+(NSString *)URLEncodedString:(NSString *)str
{
NSString *encodedString = (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)str,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
return encodedString;
}
}
//decode URL string
+(NSString *)URLDecodedString:(NSString *)str
{
NSString *decodedString=(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)str, CFSTR(""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
return decodedString;
}
答案 2 :(得分:0)
现在不推荐使用stringByAddingPercentEscapesUsingEncoding:
。这是iOS 7+等效的encodeURIComponent
:
[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]