2011-08-25 64 views
0

我需要編碼我的POST請求的正文,但我不知道使用哪一個。 。 I'm具有不斷變化的「(」成 %28我是用至今NSUTF8StringEncoding,NSISOLatin1StringEncoding,NSISOLatin2StringEncoding他們的非工作的麻煩正確的NSURL請求編碼

我送參數的名稱是:

monitoring_report[monitoring_report_time(1i)]= 

這將前人的精力轉化爲​​:

monitoring_report%5monitoring_report_time%281i%29%5D= 

什麼,我得到的是:

monitoring_report%5Bmonitoring_report_time(1i)%5D= 

回答

2

使用具有legalURLCharactersToBeEscaped參數的核心基礎功能CFURLCreateStringByAddingPercentEscapes。括號中的URL是合法的,這就是爲什麼他們不會被默認轉義。

實施例:

NSString *input = @"monitoring_report[monitoring_report_time(1i)]="; 
NSString *output = [(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)input, NULL, CFSTR("()"), kCFStringEncodingUTF8) autorelease]; 
NSLog(@"%@", output); // monitoring_report%5Bmonitoring_report_time%281i%29%5D= 
+0

好一個!!謝謝 –