Freemarker生成文件乱码

Freemarker是一种灵活的java模板引擎,为文件静态化,生成有规则文件提供了很大的便捷。

在昨天,将开发的系统部署到linux下,出现了生成的目标文件中出现了乱码问题(windows下正常)。

我已经完成的配置(模仿SpringMVC下FreemarkerView的配置),配置好了configuration.setDefaultEncoding,在获取Template的时候,通过getTemplate(tpl, local, encoding)方法。

问题分析:

是由于我Writer的问题,因为FileWriter默认采用系统默认的字符编码,而当时的服务器linux系统编码为gbk,导致了生成到目标文件的编码发生了变化。

解决办法:

通过OutputStream解决。OutputStream可以调整输出流的编码格式。

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(tfile), "utf-8");

你可能感兴趣的:(freemarker,乱码)