エンジニア男

勉強したことの忘備録としてつらつら書いていきます。

fromでpostした際のURLエンコーディングについて

□参考

https://developer.mozilla.org/ja/docs/Glossary/percent-encoding

 

HTTPのPOSTメソッドでサーバーにデータを送信した際、キーや値の英数字以外の文字はURLエンコードされる。

<from id="form" name="form" action="xxx" method="post">
<input id="val" value="test=test">
</form>

 

サーバーのデータを受け取った際、id="val"の値は↓となる。

test%3Dtest

 

特殊文字を扱う際はエンコード/デコードする必要がある。

 

Javaエンコード/デコードする場合

 

java.net.URLEncoder
java.net.URLDecoder

// エンコード
String encodeValue = URLEncoder.encode("test=test", "UTF-8");

// デコード
String decodeValue = URLDecoder.decode("test=test", "UTF-8");