由於url支持26個英文字母、數字和少數幾個特殊字符,因此,對於url中包含非標准url的字符時,就需要對其進行編碼。iOS中提供了函數stringByAddingPercentEscapesUsingEncoding對中文和一些特殊字符進行編碼,但是stringByAddingPercentEscapesUsingEncoding的功能並不完善,對一些較為特殊的字符無效。而對這些字符則可以使用CFURLCreateStringByteAddingPercentEscapes函數,
1 NSString *str = [NSString stringWithUTF8String:surl.c_str()]; 2 str = @"http://218.21.213.10/MobileOA/TIFF/鄂安辦發45號關於下達2012年全市安全生產相對控制指標的通知1.jpg"; 3 str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];