【发布时间】:2012-04-11 12:57:30
【问题描述】:
我的服务器上有一些图像,以特殊字符 (å,ä,ö) 命名。我不知道如何转换 NSUrl 来获取它们:
NSString *urlString = [NSString stringWithFormat: @".../Images/%@Image.png", playerName];
NSURL *url = [NSURL URLWithString: [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"url:%@", url);
//Get the image and assign it to the player
NSData *imageData = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:imageData];
上例中的日志(如果“playerName”=åäö):
.../Images/%C3%A5%C3%A4%C3%B6Image.png
但我需要它:
.../Images/åäöImage.png
我尝试了不同的(stringByAddingPercentEscapesUsingEncoding)和下面的代码没有成功:
- (NSString *)URLEncodingOfString:(NSString *)s
{
return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes
(kCFAllocatorDefault, (__bridge CFStringRef)s, NULL, NULL,
kCFStringEncodingISOLatin1);
}
非常感谢任何建议, 在此先感谢
【问题讨论】:
-
什么类型的网络服务器托管文件?阿帕奇?我假设当您将文件名放在 URL 栏中时,您的 Web 浏览器可以很好地获取它。您使用的是什么网络浏览器? (我问客户端和服务器问题的原因是我们可以调查每个默认使用的编码。)
-
您好,感谢您的回复。是的,当我在浏览器中输入它时效果很好..它也可以在没有任何特殊字符的 NSURL 的 iPhone 上使用......它只是 NSURL 将特殊字符转换为导致问题的其他一些东西..
-
@BlackMouse 嗨,你找到解决办法了吗?
-
@BlackMouse 我遇到了同样的问题,我的应用程序大部分时间都在吃东西,任何帮助都将不胜感激!