傳智播客bbs項目,解決mysql中文亂碼問題

       今天開始實戰項目學習,先學一個bbs ,湯老師講的,湯老師先演示了一遍已做好的項目的功能及使用。然後講了項目用到的技術,項目的架構,用uml畫了項目的類圖。接着就開始配置環境,編寫代碼進行實現。湯老師在項目的講解中,是和前面hibernate的講解不一樣的,湯老師會講解一部分,就讓學員自己動手去編碼實現,然後再對學員遇到的問題及編碼的正確寫法進行講解,效果不錯。在項目中會遇到很多問題,也對前面學的基礎知識進行復習,還可以學到設計模式,算法等,我以後在學習項目中會對這些進行總結,與大家分享。

 

     實際項目中遇到的問題就是多,說一個mysql的中文亂碼問題,是一個學員提出的,湯老師幫助解決了,並進行了講解。我在數據庫中還沒有插入過中文,還真沒有發現這一問題,我試了一下我的程序,發現也有這個問題,就是對數據庫表的某一字段插入中文,到數據庫中去看,結果全是“?”,這自然是編碼的問題。在編碼問題解決中,一個重要的思想就是,用什麼編碼集編碼,就要用什麼編碼集解碼。我就按照湯老師解決問題的思路進行解決。首先,在mysql客戶端輸入status命令Server characterset:    latin1
Db     characterset:    latin1
Client characterset:     latin1
Conn.  characterset:     latin1
這就找到了問題的所在,全都是 latin1,肯定不能進行正確的中文編碼,可以在mysql server文件夾中的my.ini文件中,對他們進行設置
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=utf8
default-storage-engine=innodb
重啓mysql後就可以看到
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:     gbk
Conn.  characterset:    gbk
我再對數據庫插入中文,程序報錯,sqlException,could not insert,而插入英文沒有問題,可以判斷這還是數據庫的問題,可以使用show create table tablename;命令,可以看到我要插入的字段後面顯示character set latin1;看來還要對錶中字段進行修改,在mysql query browser中的表上可以選擇edit table ,雙擊該字段 再選擇Column details,可以看到有一下拉列表框clumn Charset 選擇utf8即可。

 

    在一個類的編寫中,如果方法體暫時不知道該如何寫,就在方法裏頭 寫一句throws new UnsupportedOperateException。 相當於做個標記,在其他類中調用它時,通過異常就會知道這個方法還沒有寫代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章