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