近期想使用SpringSide開發(fā)Web應(yīng)用,我用的是最新版3.2.2。應(yīng)該說,入手SS3,是看了海邊沫沫所寫的一系列文章,尤其以SS3系列為主。去官網(wǎng)下載SS3.2.2,完成一系列變量的配置,并解壓安裝SS后。開始創(chuàng)建項目,發(fā)現(xiàn)使用BIN\new-project.bat創(chuàng)建出來的project文件夾下,并沒有l(wèi)ib文件夾,此時,通過點擊所創(chuàng)建工程目錄下的BIN\init-jar.bat,可以初始化項目所需要的jar文件。
一切就緒,用Eclipse import工程,發(fā)現(xiàn)有紅叉,add jars之后,紅叉消失。由于本身不喜歡使用SS3自帶示例的數(shù)據(jù)庫,按海邊沫沫的方法將數(shù)據(jù)庫遷移至MySQL,當(dāng)然,因為SS3.2.2更新過,建表及插入數(shù)據(jù)語句也因此而不同。在未處理MySQL字符編碼的及SS3已統(tǒng)一項目編碼UTF-8的前提下,數(shù)據(jù)庫遷移成功。
運行project,發(fā)現(xiàn)登錄之后,熟悉的中文亂碼映入眼簾。此時,新建數(shù)據(jù)插入數(shù)據(jù)庫之后,JSP瀏覽中文正常顯示,說明需要配置MYSQL端。baidu了一陣之后,發(fā)現(xiàn)一般的解決方法是統(tǒng)一幾處編碼,于是打開MySQL安裝目錄下的my.ini,將client和mysqld下面改為default-character-set=utf8。重啟MySQL之后,通過命令行建表成功,但在插入數(shù)據(jù)時卻無法插入中文,百般無奈之下,再次baidu,發(fā)現(xiàn)有一種折中處理辦法,也即注釋掉MYSQL引入的新限制“sql-mode”,注釋掉之后,發(fā)現(xiàn)命令行能插入中文數(shù)據(jù),不提示錯誤,然而select卻發(fā)現(xiàn)剛剛插入的中文數(shù)據(jù)為空。
不得不開始了第三組baidu,發(fā)現(xiàn)可以將:
[mysql]default-character-set=gbk
#這個設(shè)置的是MySQL自帶的命令行顯示和輸入的
[mysqld]default-character-set=utf8
#這個設(shè)置決定MySQL的工作環(huán)境字符集,數(shù)據(jù)庫繼承MySQL設(shè)置的字符集,而表則繼承數(shù)據(jù)庫的字符集,字段則繼承表的字符集。至于web端的統(tǒng)一UTF-8就不多說了。
解注釋剛才的sql-mode,重啟MySQL,打開MySQL自帶的命令行,插入中文數(shù)據(jù)成功,select無亂碼和為空白的情況,啟動project,到此,亂碼問題解決。