//獲取客戶端傳遞過來的用戶名參數值
String username = request.getParameter("username");
System.out.println("用戶名:" + username);
// 先對用戶名進行解碼獲得%E7%8E%8B%E6%8C%AF%E5%9B%BD 這樣的形式
username = URLEncoder.encode(username, "ISO-8859-1");
// 再進行utf-8編碼 一次獲得頁面上輸入的文本內容
username = URLDecoder.decode(username, "UTF-8");
System.out.println("亂碼解決後用戶名:" + username);
2) 第二種方式 使用 String類的方法進行編解碼
username = new String(username.getBytes("ISO-8859-1"), "UTF-8");
System.out.println("亂碼解決後用戶名:" + username);
解決亂碼的代碼以下:
public class Params2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//獲取客戶端傳遞過來的用戶名參數值
String username = request.getParameter("username");
System.out.println("用戶名:" + username);
// 先對用戶名進行編碼獲得%E7%8E%8B%E6%8C%AF%E5%9B%BD 這樣的形式
// username = URLEncoder.encode(username, "ISO-8859-1");
//再進行utf-8解碼 一次獲得頁面上輸入的文本內容
// username = URLDecoder.decode(username, "UTF-8");
// System.out.println("亂碼解決後用戶名:" + username);
// 先iso-8859-1編碼,再utf-8解碼
username = new String(username.getBytes("ISO-8859-1"), "UTF-8");
System.out.println("亂碼解決後用戶名:" + username);
// 獲取密碼
String password = request.getParameter("password");
System.out.println("密碼:" + password);
}
}