URLエンコードの取り扱いメモ

昔は、 Apache commons の codec とか使うのを見かけたけど、そんなことせずにURLエンコードは、、、

Java の URLEncoder では、、、
「*」→ %2a
「-」→ %2d
「_」→ %5f
の3つの記号が変換されず、半角スペースは「+」になる。

String str ="*-_a b c";

String encodeStr = URLEncoder.encode(str, "UTF-8")
.replace("+", "%20")
.replace("*", "%2a")
.replace("-", "%2d")
.replace("_", "%5f");

こういう原始的な方がいい。

デコードは、

URLDecoder.decode(encodeStr, "UTF-8")

JavaScript で変換できないのは、関数其々でことなるが、escape 2バイト文字は別の体系、
%uxxxx のコードになるので、URLエンコードとしては使えないと思う、
encodeURI 関数は、、

;/?:@&=+$-_!~*.,()a#' 

encodeURIComponent関数は、、

-_!~*.()a' 

escape関数は、、

*+-_./