URIのパーセントエンコーディング

GET送信によって(URIの最後に?param=valueのような形でパラメータを記述する形)パラメータの受け渡しをする場合、& や ? などの記号や日本語などURIに使用できない文字はパーセントエンコーディングを行う必要があります。

JavaScriptではencodeURIやencodeURIComponentといった関数を使うと便利です。それぞれ以下の違いがあります

  • encodeURIは日本語の文字などのみをエンコードします。& や ? などの記号はエンコードしません。
  • encodeURIComponentはエンコードが必要な文字をすべてエンコードします。

JavaではURLEncoderクラスのencodeメソッドでエンコードすることができます。

この他に、Aipoで使われているVelocityでは addQueryData メソッドを用いればパラメータ渡しの際のパーセントエンコーディングは自動的に行われます。