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