[iOS]日本語ドメインURLをエンコードする

[iOS]日本語ドメインURLをエンコードする

こんにちは。エンジニアのtakanoです。

日本語ドメインURLがWebViewで開けない問題が起きました。
エンコードが正しくできていないことが原因で
Punycode(ピュニコード)という方式でエンコードする必要がありました。
ライブラリPunycode-Cocoaを使用することで正しくできます。


NSString *url = @"http://お名前.com";
url = [url encodedURLString];
NSLog(url);

出力結果:http://xn--t8jx73hngb.com

Google検索してよく出てくる

[hoge  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

とか


CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
                                                         kCFAllocatorDefault,
                                                         (__bridge CFStringRef)self,
                                                         NULL,
                                                         (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                         kCFStringEncodingUTF8));

では日本語ドメインURLを正しくエンコードできないので注意。

TAG

  • このエントリーをはてなブックマークに追加
takano
takano takano

素晴らしいアプリを開発して世の中をもっとハッピーにしたい! ビール大好き!卓球大好き!音楽大好き! 最近は子供とおかあさんといっしょを見てるせいで「ブンバボーン」の脳内再生が止まりません。