哪個NSString的編碼方法將百分比(&)字符正確地躲避符號爲%26
?NSString的方法來逃避百分之「&」的URL
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
獲取空格(%20)和其他壞人,但忽略&符!
哪個NSString的編碼方法將百分比(&)字符正確地躲避符號爲%26
?NSString的方法來逃避百分之「&」的URL
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
獲取空格(%20)和其他壞人,但忽略&符!
&符號不會通過該方法,因爲他們是在一個URL合法字符進行處理。在這次電話會議之前,你應該預先處理特別有問題的作品,零碎。
+1。 – 2010-01-29 01:40:47
這裏是一個很好的解決方案,從Bagonca blog到URL編碼您的NSString的考慮這個問題:
+ (NSString *)urlEncodeValue:(NSString *)str
{
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8);
return [result autorelease];
}
添加CFBridgingRelease(
爲ARC兼容。
+ (NSString *)urlEncodeValue:(NSString *)str
{
NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8));
return result;
}
這解決了我的問題。答案很難找到,因爲我不知道原因是我的POST正文中的字符。這好像是由於我的文件的大小。如果您正在發送sendAsynchronousRequest並請求終止有效載荷,檢查編碼。謝謝。 – dwaz 2015-08-10 19:34:29
接受的答案是不,我不認爲很正確,你需要處理字符串後調用addPercentEscapesAndReplaceAmpersand
+ (NSString *) addPercentEscapesAndReplaceAmpersand: (NSString *) stringToEncode
{
NSString *encodedString = [stringToEncode stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
return [encodedString stringByReplacingOccurrencesOfString: @"&" withString: @"%26"];
}
與號是在URL中有效的字符。 'www.example.com?1 = 5&B = 7' – 2010-01-29 01:39:30
我know..but它搞亂了我的查詢參數,以便需要押韻增加查詢字符串之前,「刪除」的和值中出現的.. – Meltemi 2010-01-29 02:00:21