NSURL returns nil 当传递一个带有非 ascii 字符的主机名的 HTTP url
NSURL returns nil when passing a HTTP url with a hostname with non-ascii characters
如果您尝试从这个 URL 创建一个 NSURL
,它 returns nil
(在 OS X 10.11.6 上观察到):
http://夜景バーラウンジ-majestic汐留.com/
使用主机名的替代表示的 URL 工作正常:
http://xn---majestic-zv4hsg0krlzerfp952e1lybpewawh3b.com/
如果你只有 URL 的第一个版本,有什么方法可以让它继续与 NSURL
一起使用吗?
这应该适用于大多数情况:
NSString *urlStr = @"http://夜景バーラウンジ-majestic汐留.com/";
urlStr = [stringToConvert stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlStr];
如果您尝试从这个 URL 创建一个 NSURL
,它 returns nil
(在 OS X 10.11.6 上观察到):
http://夜景バーラウンジ-majestic汐留.com/
使用主机名的替代表示的 URL 工作正常:
http://xn---majestic-zv4hsg0krlzerfp952e1lybpewawh3b.com/
如果你只有 URL 的第一个版本,有什么方法可以让它继续与 NSURL
一起使用吗?
这应该适用于大多数情况:
NSString *urlStr = @"http://夜景バーラウンジ-majestic汐留.com/";
urlStr = [stringToConvert stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlStr];