setCharacterEncoding

setCharacterEncodingは本体(body)に適用されるもの...。
知らなかった。思いっきり文字化けに苦しんでしまった。とりあえず、post methodに切り替えて文字化け解消。

本家MLで話題沸騰(uso)の、5.0.16/4.1.29でrequest.setCharacterEncoding()が効かない件。method=postのformで送信されたテキストはrequest.setCharacterEncoding("MS932")とかすることで正しくハンドリングできるが、method=getで送信されたもの(URIパラメータ)は正しくハンドリングできない。文字化けする。なので、getMethod()が"GET"なら自前でエンコーディングを変換(普通に new String(param.getBytes("8859_1"),"MS932"))する必要がある。
2003/12/18

    • -

これは、setCharacterEncodingは本体(body)に適用されるもの(であるのでURIには適用されない)という仕様に基づいているので、バグではなく、従って修正もされない。念の為。Bug#25017。