1 NSString *str = [NSString stringWithUTF8String:surl.c_str()]; 2 str = @”http://218.21.213.10/MobileOA/TIFF/鄂安辦發(fā)45號關于下達2012年全市安全生產(chǎn)相對控制指標的通知1.jpg”;3 str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
(2) stringByAddingPercentEscapesUsingEncoding用與將Unicode字符轉換成有百分號的形式。 stringByReplacingPercentEscapesUsingEncoding:將百分號形式轉換成Unicode形式 例子: NSString *rawText = @”O(jiān)ne Broadway, Cambridge, MA”; NSString *encodedText = [rawText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSLog(@”Encoded text: %@”, encodedText); NSString *decodedText = [encodedText stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSLog(@”O(jiān)riginal text: %@”, decodedText); 輸出: Encoded text: One%20Broadway,%20Cambridge,%20MA
Original text: One Broadway, Cambridge, MA ********************************************* stringByAddingPercentEscapesUsingEncoding對中文和一些特殊字符進行編碼,但是stringByAddingPercentEscapesUsingEncoding的功能并不完善,對一些像& /等特殊的字符無效。而對這些字符則可以使用CFURLCreateStringByteAddingPercentEscapes函數(shù),例子: // Encode a string to embed in an URL. NSString* encodeToPercentEscapeString(NSString *string) { return (NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef) string, NULL, (CFStringRef) @”!*’();:@&=+$,/?%#[]”, kCFStringEncodingUTF8); }
// Decode a percent escape encoded string. NSString* decodeFromPercentEscapeString(NSString *string) { return (NSString *) CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (CFStringRef) string, CFSTR(“”), kCFStringEncodingUTF8); }
int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *rawText = @”Bed Bath & Beyond - URL=http://www.bedbathandbeyond.com/“;
NSString *encodedText = encodeToPercentEscapeString(rawText); NSLog(@”Encoded text: %@”, encodedText); NSString *decodedText = decodeFromPercentEscapeString(encodedText); NSLog(@”O(jiān)riginal text: %@”, decodedText);
[pool drain]; return 0; }
新聞熱點
疑難解答
圖片精選