iOSでwebViewを使ったアプリ構築をしていると、URLに2バイト文字を使う場合が多々発生する。
そんな場合、URLエンコード、デコードを使って文字列をコントロールする事はよくある。
エンコードについての説明は省くが簡単に下のような変換を対象とする。
# 元文字列
「検索エンジン」
# エンコード後
「%8C%9F%8D%F5%83G%83%93%83W%83%93」
iOS8までの場合
## URLエンコード
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
## URLデコード
text = [text stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
iOS9移行
## URLエンコード
url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]];
## URLデコード
text = [text stringByRemovingPercentEncoding];
iOS9開発時点での見解
とりあえず、現時点ではwarningなのだが、「deprecated」になってしまっているので、確実に修正しておいたほうがいいだろう。
ただし、iOS8以前の対応にする場合は、古い記述も必要になる。
まったく、フレームワークのコーディングルール(記述)をコロコロ変えられては困るんだよなあ。
できれば下位互換を担保してもらいたいものだ。
0 件のコメント:
コメントを投稿