6

Grails 1.0.4 を MySQL と一緒に使用すると、自動生成されたデータベース テーブルの文字セットがデフォルトで ISO-8859-1 になっているようです。すべてを純粋な UTF-8 として保存したいのです。それは可能ですか?

自動生成されたデータベース定義から:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

「latin1」の部分に注意してください。

4

4 に答える 4

12

ほとんどの MySQL インストールはデフォルトで latin1 に設定されているため、特に指示がない限り、ドライバーはデフォルト値に従います。接続 URL の先頭に charset ディレクティブを追加するだけで十分です。次に例を示します。

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

これが機能するには、MySQL コネクタ JAR がバージョン 5 である必要があります (3.x は機能しません)。

ソース: MySQL リファレンス マニュアル: 文字セットと Unicode の使用

于 2009-06-09T14:29:37.270 に答える
6

また、作成時にデータベースのデフォルトの文字エンコーディングを設定する必要があります

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8;
于 2009-11-03T17:18:40.363 に答える
3

どうやら、Hibernate用に独自のカスタムSQLダイアレクト(Grailsが永続性に使用する)を定義することで、自分のやり方をハックする必要があるようです。

于 2009-01-26T22:16:07.677 に答える
1

データベース用の照合順序を作成する必要がありますutf8_genenal_ci。次に、この文字列を接続文字列に追加します。

useUnicode=true&characterEncoding=utf-8"
于 2012-05-08T04:55:14.763 に答える