encodeURIComponent等效对象-c

时间:2012-07-02 22:46:34

标签: javascript objective-c

我在谷歌搜索时遇到了麻烦。

Objective-C是否具有编码URI Component的等效方法?

http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp

这似乎是一个非常常见的用例,但我在Objective-C中找不到任何关于它的文档。

感谢。

3 个答案:

答案 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]]