当前位置: 首页 > 知识库问答 >
问题:

如何在Thymeleaf+Spring+Tomcat中启用UTF-8支持?

阚允晨
2023-03-14

我的应用程序的Thymeleaf配置设置为:

@Bean
public ServletContextTemplateResolver templateResolver() {
    ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
    templateResolver.setCacheable(false);
    templateResolver.setTemplateMode("HTML5");
    templateResolver.setCharacterEncoding("UTF-8");
    templateResolver.setPrefix(HTML_VIEWS);
    templateResolver.setSuffix(".html");

    return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.addDialect(new SpringSecurityDialect());
    templateEngine.addDialect(new LayoutDialect(new GroupingStrategy()));
    templateEngine.setTemplateResolver(templateResolver());

    return templateEngine;
}

@Bean
public ViewResolver viewResolver() {

    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(templateEngine());
    viewResolver.setCharacterEncoding("UTF-8");
    viewResolver.setCache(false);
    viewResolver.setOrder(1);

    return viewResolver;
}

OS(CentOS 7)默认编码是UTF-8,所有生成的文件都使用UTF-8编码。我似乎仍然不能正确地显示字符。我尝试了一堆在这里找到的建议,但没有用。

根据这里的一些建议,我还尝试在Spring Security配置中在csrffilter之前设置characterencodingfilter。此外,该应用程序还保存了带有奇怪字符的数据。

我的securitu配置从以下内容开始:

@Override
protected void configure(HttpSecurity http) throws Exception {

    CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
    encodingFilter.setEncoding("UTF-8");
    encodingFilter.setForceEncoding(true);

    http.addFilterBefore(encodingFilter,CsrfFilter.class);
    // more security configs
}

我错过了什么?

共有1个答案

澹台衡
2023-03-14

该死的messages_pt_br.properties文件的编码与应用程序的其他部分不同...它决定采用ISO-8859-1。打我为什么!

 类似资料:
  • 我试图让两个连字符触发短破折号,三个连字符触发长破折号;喜欢 除了工作。以下是我的收获: 这部作品(11部产生2111部产生3部) 这是同一个脚本,但“1”已被替换为“-”,“2”已被替换为“-”,而“3”已被替换为“-“--”-“应该生成”-“和“--”应该生成”-”,但它不起作用,因为我使用的版本中不完全支持Unicode(AutoHotKey.com上的AutoHotKey_L v1.1.0

  • 编辑2014-02-07:EclipseLuna在这里,对Tomcat8的支持包含在捆绑的WTP中:)快乐的日子! Tomcat 8还在开发中,但是你可以在这里得到它。现在在Apache Tomcat主页上有一个RC版本。更新2/27/14: 8现已发布,并且为WTP构建了适配器,只是尚未集成到eclipse软件包中。很快! 但在Eclipse开普勒中,Tomcat 8的添加服务器列表中没有受支持

  • 出于某种原因,它对我不起作用。我做错了什么? pom.xml sampleController.java

  • 问题内容: 如何在我的API上获得UTF-8支持?此刻,一个字符串输出如下: 代替: 在以下结帐app.js: 问题答案: 连接到响应生成器或创建执行以下操作的中间件: 否则,浏览器将以他喜欢的编码显示内容。 如果这不能帮助您,则DB可能编码错误。 编辑: 由于答案将近5年,API已更改。对于当前的node.js版本,请使用:

  • 问题内容: 我正在尝试使用一些跨域的Web服务。当我停用chrome的网络安全功能时,它的运行状况良好。我希望它在没有此功能的情况下工作,因此我尝试添加cross- domain.xml,但仍然无法正常工作。当我进行更多搜索时,开始了解有关tomcat中启用CORS的信息。 来自 http://www.w3.org/wiki/CORS_Enabled 对于Apache,可以将Apache配置为使用

  • 问题内容: 我们将对使用JSF2.0,Hibernate,MySQL设计的Web应用程序启用UTF-8字符编码。 以下是我们的应用程序上下文文件中定义的数据源 在运行应用程序时,我们遇到异常 我们也尝试使用以下方法,但出现错误 问题答案: 经过一些解决后,我能够处理该问题-以下是对我有用的代码,以启用与UTF8一起使用的JDBC 配合使用达到目的 为了能够与Hibernate一起使用,还应在hib