iOS URLEcode,URLDecode

iOS가 네트워크 프로그래밍과 관련될 때 서버와 httpurl의 상호작용이 필요합니다
url에 한자가 존재하거나 그림을 업로드해야 한다면 urlEncode를 고려해야 합니다. 그렇지 않으면 웹 주소가 잘못될 수 있습니다.
서버에서 되돌아오는 정보를 받는 데도 같은 문제가 있을 수 있습니다. 이때 서버가 urlEcode로 되돌아갈 수 있습니다. 클라이언트는 urlDecode를 디코딩해야 합니다.
사실 방법은 매우 간단하다. 아래와 같은 두 가지 방법만 만들면 된다
URLEncodedString 인코딩
-(NSString *)URLEncodedString:(NSString *)str
{
    NSString *encodedString = (NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                              (CFStringRef)str,
                                                              NULL,
                                                              (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                              kCFStringEncodingUTF8));
    
    return encodedString;
}

URLDecodedString 디코딩
-(NSString *)URLDecodedString:(NSString *)str
{
    NSString *decodedString=(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)str, CFSTR(""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
    
    return decodedString;
}

호출 방법:
NSString *readyEcodeStr=@"adsfa asdfa s+asdf";// urlecode 
    NSString *ecodeStr=[self URLEncodedString:readyEcodeStr];
    NSLog(@"readyEcodeStr=%@  ecodeStr=%@",readyEcodeStr,ecodeStr);

인쇄된 로그는 다음과 같습니다.
readyEcodeStr=adsfa asdfa s+asdf  
ecodeStr=adsfa%20asdfa%20s%2Basdf
오케이 거의 이루어졌어요.
사실 이 두 가지 방법은 모두 NSString을 확장하는 방법이고 유목을 통해 실현할 수 있다.참조:http://blog.csdn.net/lwjok2007/article/details/47081371)
애플 개발군: 414319235 환영 토론 가입

좋은 웹페이지 즐겨찾기