FreeMarkerの文字化け対策
2009/04/01 14:12Update
FreeMarkerで日本語の出力や文字化け対策について学びます。
FreeMarkerについて
FreeMarker - Javaで動作するテンプレートエンジン
テンプレートエンジンfreemarkerでRSSを出力してみる
FreeMarkerを使って日本語のテキストを出力する際に、うまく出力されない(文字化け)場合があります。
本文は、FreeMarkerの文字化け対策について考えたいと思います。
FreeMarkerの文字化け対策 基本
1、まず、何の文字コードを利用するかを決定します
例えば、UTF-8やShift_JISなど
2、テンプレートファイルを利用したい文字コードで保存します。
ファイル保存時、必ず1で決定した文字コードで保存しておいてください。
例えば、
mail.ftl
日本語だよ
${user}
<p>あいうえお</p>
3、FreeMarkerのデフォルト文字コードを指定します。
Configuration templateCfg = new Configuration();
templateCfg.setDefaultEncoding("utf-8"); //デフォルト文字コードにutf-8を指定します。
...
Template t = templateCfg.getTemplate("mail.ftl"); //テンプレートを取得します
t.setEncoding("utf-8"); //ここにも同じ文字コードを設定します
...
4、必要に応じて、OutputStreamにも相応しい文字コードを指定します。
Writer out = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(htmlFile), "UTF-8"));
HashMap context = new HashMap();
context.put("user", "鈴木 太郎");
t.process(context, out);
これで、英語以外の文字例えば日本語でも正常に出力されると思います。
Sponsored Link
Comments
- Relative Articles
- Javaでpropertiesファイルの読み書き処理(1) - (2009/01/24 16:36)
- テンプレートエンジンfreemarkerでRSSを出力してみる - (2009/02/06 13:59)
- Commons HttpClient PostMethodで日本語パラメータ例 - (2011/05/31 00:34)
- Java Webアプリ開発における文字化け対策 - 概要 - (2009/03/24 17:13)
- Java Webアプリ開発における日本語パラメータの文字化け対策 - (2009/04/03 13:12)