Freemarker模板上写死的中文生成HTML后出现乱码,在线等!

发布网友 发布时间:2022-04-25 23:07

我来回答

3个回答

热心网友 时间:2022-04-15 19:58

Template 实体有个setEncoding()方法,Configuration 实体有个 setDefaultEncoding() 方法,文件流也能设置编码。
例如:
File file = new File("e:/freemarkers/");
Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(file);
cfg.setDefaultEncoding("UTF-8");
Template template = cfg.getTemplate("test.ftl");
template.setEncoding("UTF-8");
FileOutputStream fos= new FileOutputStream("e:/htmls/test.html");
OutputStreamWriter osw =new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw =new BufferedWriter(osw, 1024);
Map<String,Object> tagMap = new HashMap<String, Object>();
template.process(tagMap, bw);
bw.flush();
bw.close();追问这些我都设置过的,还是没用

追答你自己有写filter类来控制请求和响应的代码没?

热心网友 时间:2022-04-15 21:16

你在写中文的时候,你那个模板文件的编码改为UTF-8,就是以UTF-8的编码写入中文,那么转换后的html就不是乱码了

热心网友 时间:2022-04-15 22:51

页面编码问题,如:gb2312、utf-8来回换一下试试

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com