URLエンコードする際の注意
Web APIを利用する際に、パラメータを下記のように指定して行くと思います。
パラメータ名1=パラメータ値&パラメータ名2=パラメータ値...
パラメータに日本語を含む場合はURLエンコードをする必要があります。
ここで私はNSStringクラスのstringByAddingPercentEscapesUsingEncodingメソッドを使ってハマってしまいました。
↓これはNG。stringByAddingPercentEscapesUsingEncodingでは「&」や「+」などがエスケープされません。
[string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
で、Google先生に聞いてみると情報が簡単に出てきます。きっと当たり前のことなんでしょうね(汗)
私は知らなかったため、ハマってしまいました。
解決方法はこちら。
Core FoundationのCFURLCreateStringByAddingPercentEscapesを使えば解決するとのことです。
実際の使い方は以下を参照してください。
[*1 autorelease]