近期想使用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,到此,乱码问题解决。