2016-08-12 8 views
0

をHTTP URLを渡すときNSURLは、あなたがこのURLからNSURLを作成しようとすると、それは(OS X 10.11.6上で観察された)nilを返すnilを返します。非ASCII文字をホスト名で

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

ホスト名の代わりの表現を使用してURLが正常に動作します:

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

あなたが持っているすべてのURLの最初のバージョンである場合、STILする方法があります私はそれをNSURLと一緒に使えますか?

+0

はhttps://github.com/BigZaphod/IFUnicodeURLを見てください。 – mttrb

+0

'IFUnicodeURL'は古く、ARC用に更新する必要がありますが、それが完了すると、両方向のサンプルURLを正しく変換します。 – mttrb

+0

また、https://github.com/wordpress-mobile/NSURL-IDNはもっと現代的なオプションのように見えます – mttrb

答えて

0

これは、ほとんどの場合のために働く必要があります。これは何が必要かもしれませんよう

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

返されるNSURLは実際にはhttp://%E5%A4%9C%E6%99%AF%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A6%E3 %83%B3%E3%82%B8-majestic%E6%B1%90%E7%95%99.com /私がテストしたブラウザではうまくいく。私は疑いがあります:実際には正式にサポートされているホスト名のパーセントエンコーディングですか? – Pol

+0

Stack Overflow自体は、このURLをリンクなどに変換しません。 – Pol

+0

最新のWebkit実装は、2005年にip specに追加されて以来、これをサポートしています。https://www.ietf.org/rfc/rfc3986.txt –

関連する問題