在linux下搭建網(wǎng)站的時(shí)候,亂碼問(wèn)題困擾了我差不多一個(gè)星期,后來(lái)終于解決了。
我的體會(huì)就是:應(yīng)用必須和數(shù)據(jù)庫(kù)的字符集(編碼)相一致。
具體地說(shuō),就是,如果你想使用gb2312編碼,那就要保證:每一個(gè)jsp文件都是以gb2312編碼存儲(chǔ)的(在保存文件的時(shí)候選擇gb2312編碼就可以了),另外,文件頭還要定義;關(guān)于數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)時(shí)就要定義編碼,例如:create database mysql default character set gb2312 collate gb2312_chinese_ci;最后要做得就是,連接數(shù)據(jù)時(shí),在相關(guān)文件中加入以下代碼:
useUnicode=true&characterEncoding=gb2312.
要補(bǔ)充說(shuō)明的是,在linux下,其實(shí)不用選擇gb2312,我都用的是utf8,當(dāng)然也需要按照以上步驟進(jìn)行設(shè)置,肯定不會(huì)出現(xiàn)亂碼!個(gè)人喜好,大家隨意!
之前我試了很多方法,比如在/etc/sysconfig/i18n文件中改系統(tǒng)字體,在/etc/my.cnf中[mysqld]字段后加入如下語(yǔ)句default-character-set=gb2312等等,我覺(jué)得沒(méi)有必要。
以上步驟看似很簡(jiǎn)單,但是我的失敗教訓(xùn),也是我的成功心得。現(xiàn)在與大家分享,看后有收獲的,不頂一下就是你的不厚道了!
忘了,還有很關(guān)鍵的一點(diǎn),jdbc千萬(wàn)要用適合的版本,之前我用的是3.0.9,發(fā)現(xiàn)不行,后來(lái)?yè)Q用了3.0.16,就沒(méi)問(wèn)題了。


