UTF-8 только в таблицах базы данных Grails - PullRequest
6 голосов
/ 27 января 2009

При использовании Grails 1.0.4 вместе с MySQL кодировки автоматически генерируемых таблиц базы данных по умолчанию соответствуют ISO-8859-1. Я предпочел бы хранить все как чистый UTF-8. Это возможно?

Из автоматически созданных определений базы данных:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Обратите внимание на часть "latin1".

Ответы [ 4 ]

12 голосов
/ 09 июня 2009

В большинстве установок MySQL по умолчанию используется значение latin1, поэтому, если не указано иное, драйвер будет использовать значения по умолчанию. Достаточно добавить в URL-адрес подключения директивы charset, например:

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

Чтобы это работало, JAR MySQL Connector должен быть версии 5 (3.x не будет работать).

Источник: Справочное руководство по MySQL: использование наборов символов и Unicode

6 голосов
/ 03 ноября 2009

также кодировка символов по умолчанию должна быть установлена ​​для базы данных при создании

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8;
3 голосов
/ 27 января 2009

Очевидно, вам придется взломать свой путь путем определения собственного пользовательского диалекта SQL для Hibernate (который Grails использует для персистентности).

1 голос
/ 08 мая 2012

Вы должны создать базу данных, используя сопоставление utf8_genenal_ci. И затем вы добавляете эту строку в строку подключения:

useUnicode=true&characterEncoding=utf-8"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...