1. 程式人生 > >Http協議中關於請求與響應中文引數亂碼問題詳解

Http協議中關於請求與響應中文引數亂碼問題詳解

一、請求

表單裡的引數是字元,在資料傳輸的過程中編碼為utf-8的位元組,tomcat中預設以iso-8859-1的方式解碼,所以必須要修改解碼是查詢的碼錶:

如果是post請求,在獲取引數程式碼之前:

request.setCharacterEncoding("utf-8");

如果是get方式請求:

後臺先獲取引數:

String value = requestGetParameter("name");

手動對引數內容重新解碼:

value = new String(value.getBytes("iso-8859-1"),"utf-8");

二、響應

tomcat中的字元內容預設是以iso-8859-1編碼為位元組資料,而瀏覽器端解碼查的是utf-8的碼錶解碼,所以在資料響應出去之前,設定編碼格式是utf-8:

response.setCharacterEncoding("utf-8");