将Grails 1.0.4与MySQL一起使用时,自动生成的数据库表的字符集似乎默认为ISO-8859-1。我宁愿将所有内容都存储为纯UTF-8格式。那可能吗?仅在Grails数据库表中使用UTF-8
从自动生成的数据库定义:
ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
注意的是 “latin1” 的一部分。
将Grails 1.0.4与MySQL一起使用时,自动生成的数据库表的字符集似乎默认为ISO-8859-1。我宁愿将所有内容都存储为纯UTF-8格式。那可能吗?仅在Grails数据库表中使用UTF-8
从自动生成的数据库定义:
ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
注意的是 “latin1” 的一部分。
大多数MySQL安装默认为latin1,所以如果没有其他指示,驱动程序将按默认值运行。它应该足够了预先设置的字符集的指令在连接URL,例如:
jdbc:mysql://localhost/databaseName?useUnicode=yes&characterEncoding=UTF-8
对于这项工作,MySQL的连接器JAR必须是5版(3.X将无法正常工作)。
显然你必须通过defining your own custom SQL dialect Hibernate(Grails用于持久化)破解你的方式。
也是默认的字符编码必须为数据库设置在创建
CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8;
您必须创建数据库使用排序规则utf8_genenal_ci
。然后将此字符串添加到连接字符串:
useUnicode=true&characterEncoding=utf-8"
谢谢。帮助很大。 – Phil 2012-02-09 12:13:18