国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

iOS URLencode和decode注意

2019-11-09 18:45:10
字體:
來源:轉載
供稿:網(wǎng)友
(1) 因為url支持26個英文字母、數(shù)字和少數(shù)幾個特殊字符,因此,對于url中包含非標準url的字符時(比如有漢字時),就需要對其進行編碼。iOS中提供了函數(shù)stringByAddingPercentEscapesUsingEncoding對中文和一些特殊字符進行編碼,但是stringByAddingPercentEscapesUsingEncoding的功能并不完善,對一些較為特殊的字符無效。而對這些字符則可以使用CFURLCreateStringByteAddingPercentEscapes函數(shù),

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; }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 同仁县| 太仓市| 岳阳市| 左云县| 瑞昌市| 保定市| 凤山县| 晋城| 海南省| 澄城县| 南召县| 南涧| 托克托县| 娄烦县| 阿克| 潢川县| 大石桥市| 阿尔山市| 墨玉县| 黑山县| 威信县| 枣阳市| 卓尼县| 慈溪市| 肥西县| 大埔县| 香河县| 阜宁县| 宁夏| 通江县| 卓资县| 瓮安县| 深州市| 思南县| 中方县| 大兴区| 远安县| 台江县| 镇巴县| 花莲市| 花莲市|