2009-01-26 17 views
6

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

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

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

注意的是 “latin1” 的一部分。

回答

12

大多数MySQL安装默认为latin1,所以如果没有其他指示,驱动程序将按默认值运行。它应该足够了预先设置的字符集的指令在连接URL,例如:

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

对于这项工作,MySQL的连接器JAR必须是5版(3.X将无法正常工作)。

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

+0

谢谢。帮助很大。 – Phil 2012-02-09 12:13:18

6

也是默认的字符编码必须为数据库设置在创建

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8; 
1

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

useUnicode=true&characterEncoding=utf-8"