GAE/JとVelocityを組み合わせて利用する際にUTF-8を適応する際のメモです。
2011.3.12 追記:
外部から参照されている方が多いみたいなので、見やすいように書き換えました。
以下設定方法です。
Eclipse関連
Eclipseのメニューの「ウインドウ」→「設定」→「一般」→「コンテンツ・タイプ」→「テキスト」に「.html」などを追加し、下の「デフォルト・エンコード」に「UTF-8」と入力して再起動。これで生成されるファイルがすべてUTF-8になる。
Velocity関連
・テンプレートを読み込む際に必ずエンコードを指定する。
Template template = Velocity.getTemplate(templateFileName, "UTF-8");
・{project}/war/WEB-INF/velocity.propertiesのエンコード設定を正しく指定する。
# ----------------------------------------------------------------------------
# T E M P L A T E E N C O D I N G
# ----------------------------------------------------------------------------
input.encoding=UTF-8
output.encoding=UTF-8
GAE関連
・HttpServletResponseに結果をマージする前に必ずエンコードとコンテントタイプを指定する。
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html; charset=UTF-8");
テンプレートファイル関連
・metaタグで正しくエンコードを指定する。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
関連記事:
Velocityにクラスやインスタンスを渡す