2009-05-16 6 views
2

Wenn Grails 1.1 zusammen mit einem MySQL verwendet wird, scheinen die Zeichensätze der automatisch generierten Datenbanktabellen standardmäßig ISO-8859-1 zu entsprechen. Ich hätte lieber alles als reines UTF-8 gespeichert. Ist das möglich?UTF-8 nur in Grails 1.1 Datenbanktabellen

Aus den automatisch generierten Datenbankdefinitionen:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

Hinweis der "latin1" -Teil.

Ein Workaround, der für Grails 1.0 funktioniert, wird here beschrieben. Diese Workarounds scheinen bei der Verwendung von Grails 1.1 nicht zu funktionieren. Der Parameter dataSource.dialect scheint ignoriert zu werden.

Antwort

5

Es scheint, als ob der Standardzeichensatz der Datenbank verwendet wird.

Ich löste dies durch die Datenbank mit UTF-8 als Standardzeichensatz zu erstellen:

CREATE DATABASE name_of_database DEFAULT CHARACTER SET utf8; 
-1

Sie können auch einige Eigenschaften auf die Hibernate/JDBC-URL in Ihrer DataSource.groovy Datei hinzufügen. Zum Beispiel

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

MySQL andere Parameter hat Charakter Zusammenhang auch festlegt. Ich bin nicht ganz sicher, welche und wie viele von ihnen Sie benötigen, um das erwartete Verhalten zu erhalten.

+0

Wenn die Standardzeichensatz der Datenbank nicht UTF-8 ist, das wird nicht funktionieren –

2

Hallo Ich hatte ähnliches Problem, wo das Lesen von MySQL in Ordnung war, aber das Schreiben einiger Zeichen in "?" (Fragezeichen). Dies löste es: url = „jdbc: mysql: // localhost: 3306/your-db-name useUnicode = true & characteren = utf-8

mh23

0

Hier ist die Lösung für gleiche Problem auf? Stackoverflow. UTF-8 only in Grails database tables

es ist für mich gearbeitet haben, aber es ist nicht elegant ist ...

+0

Dies ist ein Link zu einer früheren Frage die OP ** und ** er hat das schon in der Frage verlinkt. –