freemaker生成静态文件时转换文件原编码GBK为UTF-8

freemarker模板生成静态文件时可以转换原文件的编码格式,比如原文件时gbk编码的,

在使用这个模板文件生成静态文件时改变编码为utf-8。

 

package com.ldl.freemarker;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.cache.ClassTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class freemarkerTest {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws TemplateException 
	 */
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws IOException, TemplateException {
		Configuration cfg = new Configuration();
		cfg.setTemplateLoader(new ClassTemplateLoader(freemarkerTest.class,""));
		cfg.setObjectWrapper(new DefaultObjectWrapper());
		//读取时使用gbk编码
		cfg.setDefaultEncoding("gbk");
		Template temp = cfg.getTemplate("test_gbk.txt");
		Map root = new HashMap();
		root.put("info", "转换成功");
		
		String outFile = "D:\\java_project\\freemarkerTest\\src\\com\\ldl\\freemarker\\test_utf8.txt";
		//utf-8输出
		Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"utf-8"));
		temp.process(root, out);
		out.flush();
	}
}

freemaker生成静态文件时转换文件原编码GBK为UTF-8_第1张图片

 

生成的test_utf8.txt在打开时使用utf-8编码方式查看。

你可能感兴趣的:(Java综合)