Java FreeMarker无法显示汉字

Java FreeMarker无法显示汉字,java,freemarker,Java,Freemarker,首次在JAVA项目中使用FreeMarker,并在配置汉字时使用stack 我尝试了很多例子来修复下面的代码,但仍然无法实现 // Free-marker configuration object Configuration conf = new Configuration(); conf.setTemplateLoader(new ClassTemplateLoader(getClass(), "/")); conf.setLocale

首次在JAVA项目中使用FreeMarker,并在配置汉字时使用stack

我尝试了很多例子来修复下面的代码,但仍然无法实现

// Free-marker configuration object              
Configuration conf = new Configuration();            
conf.setTemplateLoader(new ClassTemplateLoader(getClass(), "/"));   
conf.setLocale(Locale.CHINA);
conf.setDefaultEncoding("UTF-8");

// Load template from source folder              
Template template = conf.getTemplate(templatePath);                                 
template.setEncoding("UTF-8");

// Get Free-Marker output value              
Writer output = new StringWriter();              
template.process(input, output);

// Map Email Full Content            
EmailNotification email = new EmailNotification();  
email.setSubject(subject);              
.......
看到一些示例请求对freemarker.properties进行更改,但我没有此文件。我只是导入.jar文件并使用它


请告知我应该怎么做,使其显示中文字符

到底是什么问题


无论如何,
cfg.setDefaultEncoding(“UTF-8”)就足够了。但是,另一个需要确保正确编码的地方是将模板输出从UNICODE文本转换回“二进制”时。所以FreeMarker将其输出发送到
编写器
,所以到目前为止,所有内容都是UNICODE,但是您将有一个
OutputStreamWriter
或类似的东西,并且必须使用字符集(可能是UTF-8)可以对汉字进行编码。

您需要更改.ftl模板文件的文件编码,方法是将其保存在IDE或记事本中,然后在“保存”对话框中更改编码。
“保存”对话框的底部应该有一个“编码”下拉列表。

什么原因使您认为它没有正确显示汉字?您的模板文件是否正确地进行了UTF-8编码?可能与@RobbyCornelissen重复?您好,我可以知道如何确保我的模板被编码吗?我试过在我的模板中,但没有帮助。@Raedwald,您好,我试过设置默认编码,如上所示。但是没有帮助。Windows上的编写器不默认为UTF-8,因此这确实会导致问题。@ddekany请再次查看我的主要帖子,我更新了源代码。