当前位置: 代码迷 >> Web前端 >> Freemarker中的编码有关问题
  详细解决方案

Freemarker中的编码有关问题

热度:141   发布时间:2012-09-04 14:19:30.0
Freemarker中的编码问题

?

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