Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UTF-8 only in Grails database tables

When using Grails 1.0.4 together with a MySQL the charsets of the auto-generated database tables seem to default to ISO-8859-1. I'd rather have everything stored as pure UTF-8. Is that possible?

From the auto-generated database definitions:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Note the "latin1" part.

like image 346
knorv Avatar asked Jan 26 '09 21:01

knorv


2 Answers

Most MySQL installations default to latin1, so if not instructed otherwise, the driver will go by the default values. It should suffice to prepend the charset directives in the connection URL, for example:

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

For this to work, the MySQL Connector JAR must be of version 5 (3.x will not work).

Source: MySQL Reference manual: Using Character Sets and Unicode

like image 57
miek Avatar answered Oct 21 '22 04:10

miek


also the default character encoding must be set for the database during creating

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8;
like image 28
user201907 Avatar answered Oct 21 '22 04:10

user201907