關於中文亂碼:① 保證 charset 和 pageencoding的編碼一致, 且都支援中文,通常建議取值為utf-8 , 還需保證了瀏覽器的顯示的字元編碼和請求的jsp頁面的編碼一致。
獲取中文引數值:在獲取任何引數值之前設定,請求的字元編碼就可以了
request.setcharacterencoding(
"utf-8"
); 這個方法必須在讀取請求引數之前呼叫,
對於post請求,只要在獲取請求資訊之前,呼叫
request.setcharacterencoding(
"utf-8"
); 對於 get請求: 前面的方式對於get無效。 那怎樣讓它寫適用於get請求的中文呢? 可以看看tomcat的幫助文件。docs——config——http.html——uriencoding(這個可以指定對於uri請求時這個編碼的方式是什麼,如果沒有指定預設的就是o碼iso-8859-1) 可以設定這個值, 也可以設定 usebodyencodingforuri 為 true 它將使用請求體的編碼。 故設定這個屬性更具有靈活性。
設定usebodyencodingforuri: 找到tomcat解壓檔案——conf——server.xml開啟—— 找到 但光改這個還不夠,還需要將tomcat重新對映一邊。(即將eclipse上 檢視框 中的 servers下面的server.xml 中的
)獲取中文引數值:預設引數在傳輸過程中使用的編碼為 iso-8859-1(o碼)
string username =
new
string(val.getbytes(
"iso-8859-1"
),"utf-8"
); 即先用iso-8859-1解碼 然後再用 utf-8 編碼。
關於中文亂碼的問題兩個層次:①在頁面上可以寫中文,而且響應使用者也是中文就可以了,這只要保證 charset , pageencoding 以及 瀏覽器那個字元編碼都是utf-8就可以了。② 如何保證獲取請求引數的值也是中文呢?對於post請求,我只要在獲取請求之前呼叫request.setcharacterencoding("utf-8")即可。而對於get請求這個方式無效,可以通過修改 tomcat, server.xml的方式,達到這個目的, 修改時要注意,對於對映的servers也要進行修改。
關於中文引數亂碼的問題
解決方法 1.客戶端編碼 jsp頁面 var username encodeuri encodeuri 中文名稱 2 伺服器端解碼 action中 string username urldecoder.decode username null?username,utf 8 encodeuri 方法 ...
關於MySQL中文亂碼的問題
剛開始接觸mysql的時候,碰到中文亂碼的問題,真的時乙個頭兩個大,在網上找了好久的資料,終於找到了解決方法,怕以後忘記,便記錄下來,也希望看到了能夠有所幫助!中文亂碼一般是字元編碼問題 1.首先檢視資料庫預設的字元編碼,輸入下面命令 show variables like char 資料庫顯示如下...
Ubuntu關於中文亂碼問題
解決方法 一.ubuntu預設的中文字元編碼 ubuntu預設的中文字元編碼為zh cn.utf 8,這個可以在 etc environment中看到 sudo gedit etc environment 可以看到如下內容 path usr local sbin usr local bin usr ...