iOS中url中文編碼問題


由於url支持26個英文字母、數字和少數幾個特殊字符,因此,對於url中包含非標准url的字符時,就需要對其進行編碼。iOS中提供了函數stringByAddingPercentEscapesUsingEncoding對中文和一些特殊字符進行編碼,但是stringByAddingPercentEscapesUsingEncoding的功能並不完善,對一些較為特殊的字符無效。而對這些字符則可以使用CFURLCreateStringByteAddingPercentEscapes函數,下面我們對其進行封裝,提供一個完善的url編碼函數。

NSString* encodeURL(NSString* unescapedString )
{
  NSString* escapedUrlString= (NSString*) CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)unescapedString, NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8 );

  escapedUrlString = [escapedUrlString stringByAddingPercentEscapesUsingEncoding:kCFStringEncodingUTF8];
  return [escapedUrlString autorelease];
}

需要特別注意的是encodeURL只能用來對url中的component編碼,不能用來對整個url進行編碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM