将Grails 1.0.4与MySQL一起使用时,自动生成的数据库表的字符集似乎默认为ISO-8859-1.我宁愿将所有内容存储为纯UTF-8.那可能吗?
从自动生成的数据库定义:
ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
注意"latin1"部分.
大多数MySQL安装默认为latin1,因此如果没有另外指示,驱动程序将使用默认值.应该在连接URL中添加charset指令就足够了,例如:
jdbc:mysql://localhost/databaseName?useUnicode=yes&characterEncoding=UTF-8
为此,MySQL Connector JAR必须是版本5(3.x将无法工作).
来源:MySQL参考手册:使用字符集和Unicode
还必须在创建期间为数据库设置默认字符编码
CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8;