Кодировка NSURL в ObjC Как сделать кодировку URL в NSURL? Спасибо Ответ 1 Вы можете использовать stringByAddingPercentEscapesUsingEncoding: NSString* escapedUrlString = [unescapedString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; Однако, по моему опыту, этот метод не совсем совершенен (при обработке некоторых зарезервированных символов), и во многих случаях мне нужно было использовать вариант: NSString * escapedUrlString = (NSString *)CFURLCreateStringByAddingPercentEscapes( NULL, (CFStringRef)unescapedString, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8 ); Ответ 2 stringByAddingPercentEscapesUsingEncoding: имеет некоторые проблемы с аргументами URL. В сочетании я использую gtm_stringByEscapingForURLArgument из Google Toolbox для Mac для аргументов URL. Ответ 3 Это сработало для меня: NSString *response = [NSString stringWithContentsOfURL:[NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding:STRING_ENCODING_IN_THE_SERVER]] encoding:STRING_ENCODING_IN_THE_SERVER error:&error];
Ответ 1 Вы можете использовать stringByAddingPercentEscapesUsingEncoding: NSString* escapedUrlString = [unescapedString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; Однако, по моему опыту, этот метод не совсем совершенен (при обработке некоторых зарезервированных символов), и во многих случаях мне нужно было использовать вариант: NSString * escapedUrlString = (NSString *)CFURLCreateStringByAddingPercentEscapes( NULL, (CFStringRef)unescapedString, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8 );
Ответ 2 stringByAddingPercentEscapesUsingEncoding: имеет некоторые проблемы с аргументами URL. В сочетании я использую gtm_stringByEscapingForURLArgument из Google Toolbox для Mac для аргументов URL.
Ответ 3 Это сработало для меня: NSString *response = [NSString stringWithContentsOfURL:[NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding:STRING_ENCODING_IN_THE_SERVER]] encoding:STRING_ENCODING_IN_THE_SERVER error:&error];