Title

2012年11月の投稿一覧

stringByAddingPercentEscapesUsingEncoding(NSString)の使い道

URLをパーセントエンコーディングするとき、stringByAddingPercentEscapesUsingEncodingを使ってはいけないという記述をよく見ますが、用途次第です。

このメソッドは「$&+,/:;=?@」をエンコードしてくれません。
しかしこれが逆に必要な時もあって、具体的には非アスキーなURLをエンコードする場合です。

例えば以下のようなURLですね。
http://exmple.com/日本語/index.html

このURLはこのままだとNSURLなどに渡せません。
日本語部分をエスケープする必要があります。

しかしながら「/」や「:」までエスケープしてしまってはURLでなくなってしまいます。
stringByAddingPercentEscapesUsingEncodingはこのような時に使います。

「$&+,/:;=?@」は日本語まじりの場合でも必ずエスケープしないとURLの構成要素と区別がつきませんのでエスケープされているが、その他の非ASCII文字はエスケープされていないというような場合に利用できるわけですね。
どこで出現するかと言えば、NSURLConnectionなど使って通信しているとホスト側からリダクレイとされたりしたときに返ってくることがあります。

カレンダー

2012年11月
« 10月   12月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

▲Pagetop