首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

SpringMVC 解決 POST 表單提交中文亂碼的最佳實踐

     編輯:Java 綜合教學

SpringMVC 解決 POST 表單提交中文亂碼的最佳實踐

在 SpringMVC 專案中,處理 POST 請求時若未正確配置字元編碼過濾器,中文參數極易產生亂碼。根本原因在於 Tomcat 預設使用 ISO-8859-1 解碼請求體,而瀏覽器通常以 UTF-8 編碼發送表單資料。解決方案是註冊 Spring 內建的 CharacterEncodingFilter,強制統一請求與回應的編碼為 UTF-8。

核心配置步驟

在 web.xml 中添加以下過濾器定義,並確保它位於所有其他過濾器之前,以便優先處理編碼轉換:

<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

關鍵參數解析

  • encoding:指定統一編碼格式,建議固定為 UTF-8,涵蓋中文及多國語言。
  • forceEncoding:設為 true 時,強制覆蓋請求與回應原有的編碼設定(request.setCharacterEncoding() 與 response.setCharacterEncoding()),確保過濾器生效。

進階提示

若專案使用 Spring Boot,無需手動配置 web.xml,只需在 application.yml 中啟用即可:

server:
  servlet:
    encoding:
      charset: UTF-8
      force: true
      enabled: true

此外,確保資料庫連線 URL、JSP 頁面指令(<%@ page pageEncoding="UTF-8" %>)、HTML Meta 標籤(<meta charset="UTF-8">)全鏈路統一為 UTF-8,才能徹底杜絕亂碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved