传递带有非ascii字符的主机名的HTTP URL时,NSURL返回nil

时间:2016-08-12 06:51:19

标签: cocoa foundation

如果您尝试从此网址创建NSURL,则会返回nil(在OS X 10.11.6上观察到):

http://夜景バーラウンジ-majestic汐留.com/

使用主机名的替代表示的URL工作正常:

http://xn---majestic-zv4hsg0krlzerfp952e1lybpewawh3b.com/

如果你拥有的只是网址的第一个版本,有没有办法让它与NSURL一起使用?

1 个答案:

答案 0 :(得分:0)

这适用于大多数情况:

NSString *urlStr = @"http://夜景バーラウンジ-majestic汐留.com/";
urlStr = [stringToConvert stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlStr];