将Grails 1.0.4与MySQL一起使用时,自动生成的数据库表的字符集似乎默认为ISO-8859-1。我宁愿将所有内容存储为纯UTF-8。这可能吗?
从自动生成的数据库定义:
ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
注意“latin1”部分。
答案 0 :(得分:12)
大多数MySQL安装默认为latin1,因此如果没有另外指示,驱动程序将使用默认值。应该在连接URL中添加charset指令就足够了,例如:
jdbc:mysql://localhost/databaseName?useUnicode=yes&characterEncoding=UTF-8
要使其工作,MySQL Connector JAR必须是版本5(3.x将无效)。
答案 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"