?
Configuration cfg = new Configuration();
cfg.setDefaultEncoding("UTF-8");
ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(), templatePath);
cfg.setTemplateLoader(ctl);
Template template = cfg.getTemplate(htmlTemplateName);
template.setEncoding("UTF-8");
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath),"UTF-8"));
?
?
问题在于本地字符集,中文环境本地字符集为GBK,英文环境默认字符集为ISO-8859-1。开始使用的是FileWriter,而FileWriter是不能设置字符集的,所以只能是默认的GBK编码,就乱码了。
使用OutputStreamWriter,参数为UTF-8,就可以了