javaweb專案中中文亂碼
阿新 • • 發佈:2019-02-15
總結一下,在JavaWeb中針對各種情況處理中文亂碼的方法。
首先我們看下,一個請求響應的流程
瀏覽器------------------>Servlet容器--------------->顯示頁面
編碼 使用容器的URIEncoding轉碼 解碼
舉例:Tomcat作為Servlet容器,Tomcat的預設的URIEncoding是“iso8859-1“,可在server.xml配置檔案中指定編碼型別
1.JSP中顯示亂碼
解決方法:在JSP中第一行加上<%@ page pageEncoding="UTF-8"%>
即可解決。
2.Servlet中顯示亂碼
解決方法:在Servlet中加上response.setContentType("text/html;charset=UTF-8");
3.Post請求中傳中文引數顯示亂碼
解決方法:接受引數前,加上request.setCharaterEncoding("UTF-8");
4.Get請求中傳中文引數顯示亂碼
第一種解決方法:程式轉碼
String value = new String(pValue.getBytes("iso-8859-1"), "UTF-8"); 第二種解決辦法:
解決方法:修改tomcat,conf資料夾下的server.xml檔案。將其中的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
修改為:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>