用freemarker生成html静态文件时,涉及的编码主要有如下2类:
1. 模板的解析编码(用于处理模板中的中文)
// - 对于没有明确编码指定的模板文件,设置读取模板文件时的字节转换为字符的编码方式
cfg.setDefaultEncoding("utf-8"
);
//设置读取指定模板的编码方式
cfg.getTemplate(tempName,charset
);
2. 静态文件的输出编码(用于处理数据中的中文)
// - 设置输出的字符集(charset),提示模板URL编码和使用http-equiv="Content-type"产生META元素 cfg.setOutputEncoding("UTF-8"); //这个还没有看出在哪用?
//输出流的编码方式。
fileOutputStream = new FileOutputStream(file);
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "utf-8"
);
template.process(content, outputStreamWriter );
附:简易查看文件编码:
用IE打开文件,然后点击菜单栏“查看”--“编码”。