求教:关于NSURL中含有中文,转码之后用NSData的dataWithContentsOfURL调用后为nil
最近在做用ios端访问服务器端的小应用,遇到NSURL中含有中文的问题,各种google百度试了一天也没找到有效的办法,只能再次请教了!
服务器端是mac下的Tomcat,
NSString *testURL = @"http://localhost:8080/Hessian/张三/3.jpg";(此处用张三代替真实人名)
NSString *escapedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(__bridge CFStringRef) testURL,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]\" "),
kCFStringEncodingUTF8));
得到的escapedString是类似“http%3A%2F%2Flocalhost%3A8080%2FHessian%2F%E5%A4%8F%E7%82%9C%2F3.jpg”这样的东西,如果用一下方法,则斜杠和‘: ’符号会保留,但是中文变成”%E5%A4%8F%E7%82%9C“一样的,
NSString *testURL2=[NSString stringWithString:[@"http://localhost:8080/Hessian/张三/3.jpg" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
之后再用NSURL *url = [NSURL testURL2(或者escapedString)];,最后得到的url确实是有内容的,但是调用了[NSData dataWithContentsOfURL:url]]之后返回的值依然为nil,路径下图片是存在的,把中文文件夹换成英文名就可以访问,不知道原因何在,各种办法都试过了,依然无法正确的访问到图片的数据,如果直接在浏览器上访问,得到的结果是
“/Hessian/%E5%A4%8F%E7%82%9C/3.jpg 説明 The requested resource is not available.”
请教各位经验丰富的前辈,这种地方到底应该怎么处理才行?