dea*_*mon 7 java freemarker character-encoding
当我使用FreeMarker读取UTF-8编码模板时,在浏览器中正确呈现特殊字符,但freeMarkerConfig.getDefaultEncoding()返回"Cp1252".如果我设置freeMarkerConfig.setDefaultEncoding("UTF-8"),我只在浏览器中看到问号,尽管"UTF-8"是模板文件的实际编码.在每种情况下,都会发送http标头"Content-Type:text/html; charset = UTF-8".
知道什么是错的吗?
将内容类型属性设置为 FreeMarkerViewResolver。
@Bean
public FreeMarkerViewResolver freemarkerViewResolver() {
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setContentType("text/html; charset=utf-8");
resolver.setCache(true);
resolver.setPrefix("");
resolver.setSuffix(".ftl.html");
resolver.setRequestContextAttribute("rc");
return resolver;
}
Run Code Online (Sandbox Code Playgroud)
输出编码是你的java机器的编码。如果您使用 UTF-FOO 创建输出文件,并将该输出文件传递给 freemarker 生成,则输出编码将为 UTF-FOO。
\n\n请参阅字符集问题。
\n\n与前任。代码 :
\n\n Template templ\xc3\xa9v\xc3\xa9nmts;\n BufferedWriter writ;\n OutputStreamWriter encod\xc3\xa9;\n\n encod\xc3\xa9 = new OutputStreamWriter(\n new FileOutputStream(new File(f_dirDestination, r\xc3\xa9sultat)), "UTF-8");\n writ = new BufferedWriter(\n encod\xc3\xa9);\n templ\xc3\xa9v\xc3\xa9nmts = f_freemarker.getTemplate(mod\xc3\xa8le);\n templ\xc3\xa9v\xc3\xa9nmts.process(f_rootDatas, writ);\n writ.close();\nRun Code Online (Sandbox Code Playgroud)\n\n您还可以在commons io中使用FileWriterWithEncoding。
\n| 归档时间: |
|
| 查看次数: |
6652 次 |
| 最近记录: |