出現中文亂碼的原因:
瀏覽器(請求) 與 服務器(默認編碼是iso-8859-1,服務器處理和響應返回) 之間的編碼格式不一致
(1)post
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
(2)get
String username=new String(request.getParameter("username").getBytes("iso-8859-1"),"utf-8");
response.setContentType("text/html;charset=utf-8");
(3)sendRedirect();
只是多了個重定向,數據傳遞瀏覽器(請求) -----> 服務器(服務器重定向響應) ------> 瀏覽器 (重定向請求)------> 服務器 (響應返回)
只需對每次http請求響應都做get或post處理即可
特殊:1、ie6一下版本對奇數數據量可能仍然產生中文亂碼
2、實現瀏覽器下載文件帶中文文件名時也可能出現亂碼
解決:此時需要使用urlencode對數據變量做url編碼