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,解決問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM