寫了個jsp文件往mysql數(shù)據(jù)庫里存數(shù)據(jù),因為有中文數(shù)據(jù),結(jié)果總出現(xiàn)亂碼,程序是這樣的,是在一個靜態(tài)html頁面里通過ajax請求服務端jsp文件,ajax將數(shù)據(jù)通過參數(shù)傳遞給
服務端jsp文件,jsp文件將數(shù)據(jù)存入mysql數(shù)據(jù)庫,在myeclipse下,已經(jīng)將所有頁面文件編碼設置成utf8格式,可是用mysql browser打開看,還是亂碼,以前碰到過類似的問題是,是在mysql browser圖形界面下,直接手工往數(shù)據(jù)庫里添加數(shù)據(jù)時,如果有中文,會提示字段太長,這個通過修改數(shù)據(jù)庫的編碼為utf8即可,現(xiàn)在是數(shù)據(jù)庫已經(jīng)是utf8,所有的html,jsp文件也都是utf8,為什么還會出現(xiàn)亂碼呢,查了好多資料,都不可靠,有的說要修改數(shù)據(jù)庫連接參數(shù),在jdbc:mysql://localhost:3306/mobi_user_data后面添上?characterEncoding=utf8,有的說在jsp獲取參數(shù)時,添加request.setCharacterEncoding("UTF-8"),都一一試過了,還是不行,其實最重要的原因是mysql服務器的編碼設置問題,修改mysql安裝目錄下的my.ini文件,將里面設置編碼的地方設置成默認編碼為utf8,重啟mysql服務器,然后再重啟,記得從命令行下啟動,用\s命令查看,顯式所有編碼都設置成了utf8了就可以了,包括服務端,客戶端啊什么的,這樣差不多就可以一勞永逸了,還有就是html中的ajax請求jsp傳遞參數(shù)時的問題,如果參數(shù)含有中文,在jsp獲取參數(shù)時,要用request.setCharacterEncoding("UTF-8")才行,盡管jsp已經(jīng)設置成pageEncoding="UTF-8"了,這個仍然要加上,我親自實驗過了的。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。