• SpringMvc+thymeleaf+HTML5中文乱码问题


    SpringMvc+thymeleaf+HTML5环境下遇到中文乱码......

        按照以往经验逐个排查,开发环境统一为utf-8编码,服务器也配置了编码过滤器,tomcat也是utf-8编码。前台页面也是utf-8编码的。

    郁闷,到底哪里出错了呢?

    排错1开发者工具检查请求,发现我的post请求体(表单)乱码(回过头来看,其实还是thymeleaf配置出错引发的)

    第一个坑:表单添加:accept-charset="UTF-8",请求体正常。服务器也打印出中文。

    排错2感觉服务器应该没问题了,可是页面怎么还是乱码?

    百度查有人说可能是文件编码不对,即文件编码不是页面中设置的utf-8,于是仔细检查另存一下,发现依旧乱码  ==|

    排错3:既然前台html没问题,服务器也没问题,那么自然而然的怀疑到了thymeleaf身上了

    第二个坑:thymeleaf配置问题(java文件配置方式,xml配置一样配上编码就OK了)

    1:模板解析器设置编码utf-8

     1   @Bean
     2     public ITemplateResolver templateResolver() {
     3         ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
     4         templateResolver.setPrefix("/WEB-INF/templates/");
     5         templateResolver.setSuffix(".html");
     6         templateResolver.setTemplateMode("HTML5");
     7         templateResolver.setCharacterEncoding("utf-8");
     8         templateResolver.setCacheable(false);
     9         return templateResolver;
    10     }

    2:视图解析器设置编码utf-8

    1   @Bean
    2     public ViewResolver springThymeleafViewResolver() {
    3 
    4         ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    5         viewResolver.setTemplateEngine(templateEngine());
    6         viewResolver.setOrder(1);
    7         viewResolver.setCharacterEncoding("utf-8");
    8         return viewResolver;
    9     }

     OK,解决问题。

    作者:枫红一叶
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    SQL对Xml字段的操作
    T-SQL查询进阶-10分钟理解游标
    如何完成支付宝的支付功能?
    支付宝api指南
    DDD学习笔录——提炼问题域之知识提炼与协作
    DDD学习笔录——领域驱动设计的常见误区(即错误的理解)
    DDD学习笔录——简介领域驱动设计的实践与原则
    DDD学习笔录——简介DDD的战术模式、问题空间和解空间
    DDD学习笔录——简介DDD的战略模式如何塑造应用程序的架构
    初识DDD
  • 原文地址:https://www.cnblogs.com/peak-c/p/4890150.html
Copyright © 2020-2023  润新知