2009-01-26 9 views
6

Al usar Grails 1.0.4 junto con MySQL, los conjuntos de las tablas de la base de datos autogeneradas parecen tener el valor ISO-8859-1 por defecto. Prefiero tener todo almacenado como UTF-8 puro. ¿Es eso posible?UTF-8 solo en las tablas de la base de datos de Grails

De las definiciones de base de datos generados automáticamente:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

Nota la parte "latin1".

Respuesta

12

La mayoría de las instalaciones de MySQL están predeterminadas a latin1, por lo que si no se indica lo contrario, el controlador utilizará los valores predeterminados. Debería ser suficiente para anteponer las directivas charset en el URL de conexión, por ejemplo:

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

Para que esto funcione, el JAR MySQL conector debe ser de la versión 5 (3.x no funcionará)

Fuente: MySQL Reference manual: Using Character Sets and Unicode

+0

Gracias. Ayudado en gran medida. – Phil

+0

Me alegra oír, ¡de nada! – miek

6

también la codificación de caracteres por defecto se debe establecer para la base de datos durante la creación de

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8; 
1

debe crear la base de datos de colación uso utf8_genenal_ci. Y luego agrega esta cadena a la cadena de conexión:

useUnicode=true&characterEncoding=utf-8" 
Cuestiones relacionadas