我有一个网址,其中包含一些“特殊”字符,如引号。 当我尝试这个:
NSURL *url = [NSURL URLWithString:@"http://someurl/%22sometext%22"];
网址为空。
当我尝试这个时:
NSURL *url = [NSURL URLWithString:[@"http://someurl/%22sometext%22" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
这是一个可怕的输出:
{type = 15,string = http://someurl/%22sometext%22,encoding = 134217984,base =(null)}
有人可以帮帮我吗?
答案 0 :(得分:1)
不要自己编码...例如NSURL *url = [NSURL URLWithString: [@"http://someurl/\"sometext\"" stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
正在运作。
但是对于正确的URL编码,请使用其他功能:
- (NSString*) encodeString: (NSString*) string
{
NSString* result = (NSString*) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR("% '\"?=&+<>;:-"), kCFStringEncodingUTF8);
return [result autorelease];
}