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

Java Web 統一異常處理與 AJAX 中文亂碼解決方案

     編輯:Java 相關知識

場景

jQuery AJAX 提交含中文參數,後台 Action 接收到亂碼。

方案一:雙重 encodeURI + 後台 decode

// 前端
data: { id: 1, type: encodeURI(encodeURI('商品')) }

// 後台
String type = request.getParameter("type");
type = URLDecoder.decode(type, "UTF-8");

缺點:雙重編碼易出錯,後台需手動解碼。

方案二:設置 contentType charset(推薦)

$.ajax({
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    data: { id: 1, type: '商品' },
    ...
});

優點:jQuery 內部已做 encodeURIComponent,後台無需解碼,直接獲取正確字符串。

原理解析

  • 默認 jQuery 不發送 charset,Tomcat 按 ISO-8859-1 解碼導致亂碼。
  • 指定 charset=UTF-8 後,Tomcat 按 UTF-8 解碼請求體,完美支持中文。
  • 同理適用於其他 JS 框架或原生 XHR,只需設置請求頭 Content-Type。

全局配置建議

在 web.xml 配置 CharacterEncodingFilter(Spring 提供),強制請求/響應編碼為 UTF-8,徹底解決全站編碼問題。

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