Title

stringByAddingPercentEscapesUsingEncoding(NSString)の使い道

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

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

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

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

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

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

Leave a Reply

E-Mail (will not be published)
Comment
*

カレンダー

2024年11月
 123
45678910
11121314151617
18192021222324
252627282930  

▲Pagetop