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

时间:2009-05-16 00:21:49

标签: mysql unicode grails utf-8

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

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

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

注意“latin1”部分。

描述了适用于Grails 1.0的变通方法here。使用Grails 1.1时,这种解决方法似乎不起作用。 dataSource.dialect参数似乎被忽略。

4 个答案:

答案 0 :(得分:5)

似乎使用了数据库的默认字符集。

我通过使用utf8作为默认字符集创建数据库来解决这个问题:

CREATE DATABASE name_of_database DEFAULT CHARACTER SET utf8;

答案 1 :(得分:2)

嗨我有类似的问题,从MySQL读取很好,但写入将一些字符转换为“?” (问号)。这解决了它: url =“jdbc:mysql:// localhost:3306 / your-db-name?useUnicode = true& characterEncoding = utf-8

mh23

答案 2 :(得分:0)

以下是StackOverflow上同样问题的解决方案: UTF-8 only in Grails database tables

它对我有用,但它不优雅......

答案 3 :(得分:-1)

您还可以在DataSource.groovy文件中向Hibernate / JDBC URL添加一些属性。例如

  

url =“jdbc:mysql:// localhost:3306 / your-db-name?useUnicode = true”

MySQL还有其他与字符集相关的参数。我不太确定你需要哪些以及有多少它们才能获得预期的行为。