2009-01-26 5 views
6

Lors de l'utilisation de Grails 1.0.4 avec MySQL, les jeux de caractères des tables de base de données générées automatiquement semblent être par défaut ISO-8859-1. Je préfère que tout soit stocké en UTF-8 pur. Est-ce possible?UTF-8 uniquement dans les tables de base de données Grails

A partir des définitions de base de données générées automatiquement:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

Notez la partie "latin1".

Répondre

12

La plupart des installations de MySQL par défaut sont latin1, donc si aucune instruction n'est donnée, le pilote ira avec les valeurs par défaut. Il devrait suffire à préfixer les directives charset dans l'URL de connexion, par exemple:

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

Pour que cela fonctionne, le JAR MySQL Connector doit être de la version 5 (3.x ne fonctionnera pas).

Source: MySQL Reference manual: Using Character Sets and Unicode

+0

Merci. Aidé grandement. – Phil

+0

Content de l'entendre, je vous en prie! – miek

6

également le caractère encodage par défaut doit être défini pour la base de données lors de la création

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8; 
1

Vous devez créer la base de données utiliser le classement utf8_genenal_ci. Et puis vous ajoutez cette chaîne à la chaîne de connexion:

useUnicode=true&characterEncoding=utf-8" 
Questions connexes