2009-01-26 8 views
6

Podczas korzystania z Grails 1.0.4 razem z MySQL, zestawy znaków automatycznie generowanych tabel bazy danych wydają się mieć domyślną wartość ISO-8859-1. Wolałbym, żeby wszystko było przechowywane jako czysty UTF-8. Czy to jest możliwe?UTF-8 tylko w tabelach bazy danych Grails

Z definicji bazy danych generowanych automatycznie:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

Uwaga "latin1" część.

Odpowiedz

12

Większość instalacji MySQL ma domyślną wartość latin1, więc jeśli nie zostanie podane inaczej, sterownik przejdzie według wartości domyślnych. Powinno wystarczyć, aby poprzedzić dyrektyw zestawu znaków w adresie URL połączenia, na przykład:

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

Aby to działało, JAR MySQL Connector musi być w wersji 5 (3.x nie zadziała).

Źródło: MySQL Reference manual: Using Character Sets and Unicode

+0

Dziękuję. Pomagał bardzo. – Phil

+0

Miło to słyszeć, nie ma za co! – miek

6

także domyślne kodowanie znaków należy ustawić dla bazy danych podczas tworzenia

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8; 
1

Musisz utworzyć obsłudze bazy danych sortowania utf8_genenal_ci. Następnie dodajesz ten ciąg do ciągu połączenia:

useUnicode=true&characterEncoding=utf-8"