UTF-8 только в таблицах базы данных Grails 1.1 - PullRequest
2 голосов
/ 16 мая 2009

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

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

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

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

Обход, который работает для Grails 1.0, описан здесь . Этот обходной путь не работает при использовании Grails 1.1. Параметр dataSource.dialect, похоже, игнорируется.

Ответы [ 4 ]

5 голосов
/ 16 мая 2009

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

Я решил эту проблему, создав базу данных с набором символов по умолчанию utf8:

CREATE DATABASE name_of_database DEFAULT CHARACTER SET utf8;
2 голосов
/ 13 августа 2009

Привет, у меня была похожая проблема, когда чтение из MySQL было в порядке, но написание преобразовало некоторые символы в "?" (вопросительный знак). Это решило это: url = "jdbc: mysql: // localhost: 3306 / your-db-name? useUnicode = true & characterEncoding = utf-8

mh23

0 голосов
/ 17 мая 2011

Вот решение той же проблемы в StackOverflow: UTF-8 только в таблицах базы данных Grails

Это сработало для меня, но не элегантно ...

0 голосов
/ 17 мая 2009

Вы также можете добавить некоторые свойства в URL Hibernate / JDBC в файле DataSource.groovy. Например

url = "jdbc: mysql: // localhost: 3306 / your-db-name? UseUnicode = true"

MySQL имеет и другие параметры, связанные с наборами символов. Я не совсем уверен, какие и сколько из них вам нужно, чтобы получить ожидаемое поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...