?
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,就可以了