FreeMarker编码混乱 [英] FreeMarker encoding confusion
问题描述
当我用FreeMarker读取UTF-8编码的模板时,特殊字符会在浏览器中正确呈现,尽管 freeMarkerConfig.getDefaultEncoding()
返回 Cp1252。如果我设置 freeMarkerConfig.setDefaultEncoding( UTF-8)
,尽管模板文件的实际编码是 UTF-8,但我在浏览器中仅看到问号。 。在每种情况下,都会发送HTTP标头 Content-Type:text / html; charset = UTF-8。
When I read an UTF-8 encoded template with FreeMarker, special chars are rendered correctly in the browser, although freeMarkerConfig.getDefaultEncoding()
returns "Cp1252". If I set freeMarkerConfig.setDefaultEncoding("UTF-8")
, I see only question marks in the browser, although "UTF-8" is the actual encoding of the template file. In every case the http header "Content-Type: text/html; charset=UTF-8" is sent.
任何想法都错了吗?
推荐答案
在FreeMarkerViewResolver中设置内容类型属性。
Set the content type property into the 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;
}
这篇关于FreeMarker编码混乱的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!