Javaと情熱のあいだ

カステラとドーナツと珈琲

URLDecoderとURLCodec

何で同じ機能があるんだ?と思っていろいろ調べたら。
URLEncoderは、Shift_JISのdecodeが正常に処理されない。
URLEncoderでencode処理すると「テスト」が「%83e%83X%83g」になるけど
URLEncoderでdecodeすると正常に処理されない。
ちなみに、URLCodecのdecodeで処理すると「テスト」と正常に処理される。

なぜかUTF-8は問題ない。
使うならURLCodecの方がいい。

URLCodec codec = new URLCodec();
System.out.println(codec.encode("テスト", "Shift_JIS"));
System.out.println(URLEncoder.encode("テスト", "Shift_JIS"));

System.out.println(URLDecoder.decode("%83e%83X%83g","Shift_JIS"));
System.out.println(URLDecoder.decode("%83%65%83%58%83%67","Shift_JIS"));

System.out.println(codec.decode("%83e%83X%83g", "Shift_JIS"));
System.out.println(codec.decode("%83%65%83%58%83%67","Shift_JIS"));