我在谷歌上搜索时遇到了麻烦。
Objective-C 是否有对 URI 组件进行编码的等效方法?
http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
这似乎是一个非常常见的用例,但我在 Objective-C 中找不到任何关于它的文档。
谢谢。
我在谷歌上搜索时遇到了麻烦。
Objective-C 是否有对 URI 组件进行编码的等效方法?
http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
这似乎是一个非常常见的用例,但我在 Objective-C 中找不到任何关于它的文档。
谢谢。
当然,您可以选择这种方法,希望对您有所帮助。
//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;
}
现在stringByAddingPercentEscapesUsingEncoding:
已弃用。这是 iOS 7+ 的等价物encodeURIComponent
:
[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]