JS 構建 URL:href:'yyj/pk?tiName='+tiName,後端 request.getParameter("tiName") 取到亂碼。
瀏覽器對 URL 參數自動進行 **UTF-8 編碼**;若伺服器預設解碼為 ISO-8859-1(Tomcat 8 以前預設),中文會亂碼。且單次 encodeURIComponent 在某些容器/代理轉發鏈中仍可能被二次解碼錯誤。
// 前端:雙重編碼
href: 'yyj/pk?tiName=' + encodeURIComponent(encodeURIComponent(tiName))
// 後端:對應雙重解碼
String tiName = request.getParameter("tiName");
tiName = URLDecoder.decode(tiName, "UTF-8"); // 第一次
tiName = URLDecoder.decode(tiName, "UTF-8"); // 第二次
server.xml <Connector URIEncoding="UTF-8"/>,Spring CharacterEncodingFilter 強制 UTF-8,前端**單次** encodeURIComponent 即可。$.post(url, {tiName: tiName}, ...),Body 以 UTF-8 JSON 傳輸,徹底繞過 URL 編碼地獄。參考詳解:CSDN 文章