我的體會就是:應用必須和數據庫的字符集(編碼)相一致。具體地說,就是,如果你想使用gb2312編碼,那就要保證:每一個jsp文件都是以gb2312編碼存儲的(在保存文件的時候選擇gb2312編碼就可以了),另外,文件頭還要定義;關於數據庫,創建數據庫時就要定義編碼,例如:create database mysql default character set gb2312 collate gb2312_chinese_ci;最後要做得就是,連接數據時,在相關文件中加入以下代碼:
useUnicode=true&characterEncoding=gb2312。
要補充說明的是,在linux下,其實不用選擇gb2312,我都用的是utf8,當然也需要按照以上步驟進行設置,肯定不會出現亂碼!個人喜好,大家隨意!
之前我試了很多方法,比如在/etc/sysconfig/i18n文件中改系統字體,在/etc/my.cnf中[mysqld]字段後加入如下語句default-character-set=gb2312等等,我覺得沒有必要。
以上步驟看似很簡單,但是我的失敗教訓,也是我的成功心得。現在與大家分享,看後有收獲的,不頂一下就是你的不厚道了!
忘了,還有很關鍵的一點,jdbc千萬要用適合的版本,之前我用的是3.0.9,發現不行,後來換用了3.0.16,就沒問題了。