今度はなぜかJSPを書かなくちゃいけなくなって、自分の大昔のJava/JSPの知識をアップデートしているところです。
そこでJSP絡みで2件、UTF-8にならずに(ISO-8859-1に)文字化けしてしまうのがあったのでその対応tips。
eclipseがJSPのファイルだけ化ける
でUTF-8に設定してあれば全てのファイルのデフォルトをUTF-8に出来ます。
が、なぜかJSPだけは化けちゃう。
もう一つ
という設定もあるのですが、ここは作成時のエンコードにのみ関係しています。
じつは、拡張子でファイルタイプごとの設定が行われるとこに、デフォルトエンコードが「ISO-8859-1」に決め打ちされているため化けてしまうのです。
にすれば良いです。
(参考)
eclipse,JSP,文字化け,"UTF-8は、コンテンツ・タイプ(ISO-8859-1)で定義されたエンコードと競合します。それでも設定しますか?" - gnarl,技術メモ
http://d.hatena.ne.jp/gnarl/20090317/1237290886
JSPから渡した文字が化ける
HTMLもJSPも全部UTF-8で書いてるのに、JSPから関数に渡された中身がISO-8859-1に化けてしまっていました。
JSPは実はデフォルトのエンコードは「ISO-8859-1」になっているため、エンコード指定をしないとそれで動いてしまってデータが渡されてしまいます。
なのでJSPの頭で、エンコードを「UTF-8」に指定してやる必要があります。
<%@ page pageEncoding="UTF-8" %>
(参考)
JSPリファレンス(@page:contentType、pageEncoding) http://struts.wasureppoi.com/jsp/05_contentType.html