OC URL編碼和URL解碼

URL編碼是一種常見的編碼方式,作用不多說,直接上代碼。

  • URL編碼:
- (NSString *)URLEncodedString {
    // CharactersToBeEscaped = @":/?&=;+!@#$()~',*";
    // CharactersToLeaveUnescaped = @"[].";
    NSString *unencodedString = self;
    NSString *encodedString = (NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                              (CFStringRef)unencodedString,
                                                              NULL,
                                                              (CFStringRef)@"!*'();:@&=+$,/?%#[]",                                                       kCFStringEncodingUTF8));
    return encodedString;
}

 

  • URL解碼:

- (NSString *)URLDecodedString {
    NSString *result = [(NSString *)self stringByReplacingOccurrencesOfString:@"+" withString:@" "];
    return [result stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}

建議這兩個方法放在NSString的分類中,並且聲明爲實例方法,這樣可以直接用NSString的對象去調用。
- 調用示例

NSString * string = @"zhansan啦啦啦啦1234567";
NSString * urlEncode = [string URLEncodedString];
NSString * urlDecode = [string URLDecodedString];
NSLog(@"urlEncode == %@",urlEncode);
NSLog(@"urlDecode == %@",urlDecode);
  • 打印結果:
urlEncode == zhansan%E5%95%A6%E5%95%A6%E5%95%A6%E5%95%A61234567
urlDecode == zhansan啦啦啦啦1234567

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章