1. 程式人生 > >解決jsp中後臺傳值中文到前臺亂碼的問題

解決jsp中後臺傳值中文到前臺亂碼的問題

臨時要在一個jsp頁面使用到後臺傳過來的一個引數,想到中文可能會亂碼,所以一開始是這樣寫的:
1. 後臺java程式碼傳值過程:

this.setName(URLEncoder.encode("測試","UTF-8"));

2.前臺jsp頁面取值過程,測試一下:

<%
String username = request.getParameter("name");
username = URLDecoder.decode(username,"UTF-8");
System.out.println(username);
%>

按照猜預期的目標,因該是頁面顯示出來<%=username%>的內容是“測試”,但還不湊巧的是,顯示出來是一堆亂碼。最後查了一下,原來是Http請求傳輸時將url以ISO-8859-1編碼,伺服器收到位元組流後預設會以ISO-8859-1編碼來解碼成字元流,所以這時候就清楚了,先將傳過來的引數使用ISO-8859-1編碼,再使用UTF-8解碼,即可解決問題:

<%
String username = request.getParameter("name");
username = new String(username.getBytes("ISO-8859-1"), "UTF-8"); 
System.out.println(username);
%>

3.原文參考連結 點選這裡