仅在Grails数据库表中使用UTF-8

时间:2009-01-26 21:55:03

标签: mysql grails utf-8

将Grails 1.0.4与MySQL一起使用时,自动生成的数据库表的字符集似乎默认为ISO-8859-1。我宁愿将所有内容存储为纯UTF-8。这可能吗?

从自动生成的数据库定义:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

注意“latin1”部分。

4 个答案:

答案 0 :(得分:12)

大多数MySQL安装默认为latin1,因此如果没有另外指示,驱动程序将使用默认值。应该在连接URL中添加charset指令就足够了,例如:

  

jdbc:mysql://localhost/databaseName?useUnicode=yes&characterEncoding=UTF-8

要使其工作,MySQL Connector JAR必须是版本5(3.x将无效)。

来源:MySQL Reference manual: Using Character Sets and Unicode

答案 1 :(得分:6)

还必须在创建

期间为数据库设置默认字符编码
CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8;

答案 2 :(得分:3)

显然你必须通过defining your own custom SQL dialect来熟悉Hibernate(Grails用于持久化)。

答案 3 :(得分:1)

您必须创建数据库使用排序规则utf8_genenal_ci。然后将此字符串添加到连接字符串:

useUnicode=true&characterEncoding=utf-8"