(회전) 중국어 파일 이름이 샌드박스에서 파일 이름이 뒤바뀌는 문제를 해결하다

1385 단어
원문:http://blog.csdn.net/lwjok2007/article/details/47023853
iOS가 네트워크 프로그래밍을 할 때 서버와 httpurl의 상호작용이 필요합니다. 만약에 url에 한자가 존재하거나 그림을 업로드해야 한다면 urlEncode를 고려해야 합니다. (그렇지 않으면 웹 주소가 잘못될 수 있습니다.) 서버가 되돌아오는 일부 정보도 같은 문제가 있을 수 있습니다. 이때 서버는 urlEcode를 되돌릴 수 있고 클라이언트는 urlDecode를 디코딩해야 합니다.
사실 방법은 매우 간단하다. 아래와 같은 두 가지 방법만 만들면 된다
인코딩 URLEncodedString [objc]view plain copy - (NSString*) URLEncodedString: (NSString*)str {NSString*encodedString=(NSString)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, (CFStringRef)@ "!();:@&=$,/%#[],kCFStringRef); gEncodingUTF8),
return encodedString;  

}
URLDecodedString [objc]view plain copy - (NSString*) URLDecodedString: (NSString*)str {NSString*decodedString=(_bridge_transfer NSString*) CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (_bridge CFStringRef)str, CFSTR("), CFStringConvertNSStringEncodingToEncoding(NSUTF8) StringEncoding);
return decodedString;  

}
호출 방법:
[objc] view plain copy NSString *readyEcodeStr=@"adsfa asdfa s+asdf";//urlecode의 문자열 NSString*ecodeStr=[self URLEncodedString:ready EcodeStr]를 준비합니다.NSLog(@"readyEcodeStr=%@ ecodeStr=%@",readyEcodeStr,ecodeStr);
인쇄된 로그는 다음과 같습니다:readyEcodeStr=adsfa asdfa s+asdf ecodeStr=adsfa%20asdfa%20s%2Basdf

좋은 웹페이지 즐겨찾기