我正在接收一个json数据对象,然后从中提取一个字符串。
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:data
options:0
error:nil];
NSString *country=jsonDictionary[@"address"][@"country"];
然后,我尝试使该字符串适合在URL中使用
NSString *newCountryString = [country stringByReplacingOccurrencesOfString:@" "
withString:@"%%20"];
但是它不起作用。
如果我硬编码newCountryString,它就能工作,为什么呢?
发布于 2014-01-28 20:00:31
作为变种,你可以使用下面的方法:
- (NSString *)URLEncodeStringFromString:(NSString *)string
{
static CFStringRef charset = CFSTR("!@#$%&*()+'\";:=,/?[] ");
CFStringRef str = (__bridge CFStringRef)string;
CFStringEncoding encoding = kCFStringEncodingUTF8;
return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, str, NULL, charset, encoding));
}
发布于 2014-01-28 18:43:30
NSSString方法stringByAddingPercentEscapesUsingEncoding应该会对您有所帮助。另请参阅How to prepare an NSURL from an NSString continaing international characters?
发布于 2014-01-28 19:16:33
我认为你应该像下面这样去掉1%
NSString *newCountryString = [country stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
了解更多信息
NSMutableString stringByReplacingOccurrencesOfString Warning
https://stackoverflow.com/questions/21403323
复制相似问题