velocity:マクロ(#macro)中国語文字化けし
最初にvelocityを使用すると、中国語の文字化けしが出力されます.私の解決策はmergeTemplateメソッドを呼び出すときにencodingをUTF-8と指定し、正常になります.
しかし、最近velocityを使用してテンプレートを書くと、マクロ(
Velocity.mergeTemplate(String templateName, String encoding, Context context, Writer writer)
しかし、最近velocityを使用してテンプレートを書くと、マクロ(
#macro
)に中国語があれば文字化けして出力されることがわかりました(macroで中国語を使ったことはありません).マクロ以外の中国語は正常に出力できます.Googleは検索してみると、中国語の乱れを徹底的に解決するには、input.encoding
の属性を設定しなければならないことに気づきました.以下のようにします.Properties vprops = new Properties();
vprops.put(Velocity.INPUT_ENCODING,"UTF-8");
vprops.put(Velocity.OUTPUT_ENCODING,"UTF-8");// OUTPUT_ENCODING , mergeTemplate encoding UTF-8
Velocity.init(vprops);