とよぶ

歌いながらコード書いてます

FreemarkerでUTF-8日本語文字化けの件

Freemarker使ってみようと思って使ってみたりなどしていたんですが、直書きした日本語がいきなり文字化け。

グーグル先生とかに聞いて見たところ、テンプレートの先頭でWindows-31J指定すればいいとか色々書いてある。

でもそこはUTF-8で行きたくね?悔しくね?!ってことで数日ハマっておりましたが、Springの場合は
FreeMarkerViewResolverとかでcontentType指定してやればおk

<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="cache" value="true" />
    <property name="prefix" value="" />
    <property name="suffix" value=".ftl" />
    <property name="contentType" value="text/html;charset=UTF-8"/>
</bean>

という感じです。

ちなみに以下の様にconfigureにdefaultEncoding設定しているだけじゃ解決しませんでしてた。

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/WEB-INF/view" />
    <property name="defaultEncoding" value="UTF-8" />
</bean>

ちょっとまだデフォルトでどういう設定になってるのかとか詳しくは調べてないので追記するかもしれません。

っていうかそもそも僕がHTMLたるものが全くわかっていないせいな気がw

とりあえずメモということで。