2013/09/06

Tomcatで文字化けを直した

TomcatというかServlet APIかな?役に立つか分からないが一応載せてみる。

ちょとしたWebアプリでUTF8のページから日本語文字列をパラメータで送信すると文字化けするようになった。多分Tomcatを新しくしたタイミングで発生したと思う。
前のTomcatでは request.setCharsetEncoding("UTF8"); をやっとくと文字化けしなかったが、これはTomcat5では無視されるらしいのでserver.xmlでuseBodyEncodingForURI属性をtrueに指定して対応した。
ところがTomcat7ではuseBodyEncodingForURIは不要になったとか。
でわけ分かんなくていろいろやって以下のようにすると文字化けしなくなった。もうTomcatの設定とか関係ない感じ。
    String comment = request.getParameter("comment");
    if (comment != null) {
        comment = new String(comment.getBytes("8859_1"),"UTF8");
    }
でもこういうのはWebAppサーバの設定で何とか対応するのが正しい気もする。StringからStringを新しく作るとか酷く効率悪そうだし。。まぁちょとしたWebアプリなので気にしてない。
(ついにJavaカテゴリを新設)

0 件のコメント:

コメントを投稿