当我使用 FreeMarker 读取 UTF-8 编码模板时,特殊字符在浏览器中正确呈现,尽管 freeMarkerConfig.getDefaultEncoding()
返回“Cp1252”。如果我设置 freeMarkerConfig.setDefaultEncoding("UTF-8")
,我在浏览器中只会看到问号,尽管“UTF-8”是模板文件的实际编码。在每种情况下,都会发送 http header “Content-Type: text/html; charset=UTF-8”。
知道哪里出了问题吗?
最佳答案
将内容类型属性设置到 FreeMarkerViewResolver 中。
Spring 4.2 示例
@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;
}
关于java - FreeMarker编码困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3434094/