CFRL Createstring ByAddingPerent EcodingWithAllowedCharctersを用いてCFRL CreatestrigByAddingPercentEscapesを置換します。

1751 ワード

iOSで プログラムアクセス HTTP リソースの場合は URL 進行 Encode、例えば、綴り合わせのようです。 http://unmi.cc?p1=%+&sd f&p 2=中国語では、中国語、特殊記号&%と空欄を翻訳しなければなりません。今は「?!@@&%*、:"="""(){}/\\\\"文字列は例として、CFRL CreatestringByAddingPercent EcodingWithAllowedCharctersを用いてCFRL CreateString ByAddingPercentEscaptesに置換されます。
元の文字列:
NSString *url = @"ertehtt""p://xxdsdscrg?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";
CFRL CreateStrigByAddingPercentEscappesの方法は:
    CFStringRef encodedCFString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                            (__bridge CFStringRef) url,
                                                                            nil,
                                                                            CFSTR("?!@#$^&%*+,:;='\"`<>()[]{}/\\| "),
                                                                            kCFStringEncodingUTF8);
    NSString *encodedString1 = [[NSString alloc] initWithString:(__bridge_transfer NSString*) encodedCFString];
strigByAddingPercent EngWithAllowed Charctersの方法は以下の通りです。
    NSString *charactersToEscape = @"?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";
    NSCharacterSet *allowedCharacters = [[NSCharacterSet characterSetWithCharactersInString:charactersToEscape] invertedSet];
    NSString *encodedUrl = [url stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];
    NSLog(@"
%@
%@",encodedUrl,encodedString1);
その後得られた文字列は一致します。