6

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

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

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

注意“latin1”部分。

4

4 回答 4

12

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

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

为此,MySQL 连接器 JAR 必须是版本 5(3.x 不起作用)。

资料来源:MySQL 参考手册:使用字符集和 Unicode

于 2009-06-09T14:29:37.270 回答
6

还必须在创建过程中为数据库设置默认字符编码

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8;
于 2009-11-03T17:18:40.363 回答
3

显然,您必须通过为 Hibernate定义自己的自定义 SQL 方言(Grails 用于持久性)来解决问题。

于 2009-01-26T22:16:07.677 回答
1

您必须使用 collat​​ion 创建数据库utf8_genenal_ci。然后将此字符串添加到连接字符串:

useUnicode=true&characterEncoding=utf-8"
于 2012-05-08T04:55:14.763 回答