0

utf-8言語(hebrew-arabic-etc ..)でテキストを保存しようとしていますが、失敗します。最初は(????????)を取得していたので、これをdataSource.groovydbCreateに入れました。 = "update" url = "jdbc:mysql:// localhost / db_name?useUnicode = yes&characterEncoding = UTF-8"}データベース全体を変換し、テーブルにutf-8と文字セットの照合を行いました。

それは私にエラーを与えます

ERRORutil.JDBCExceptionReporter-操作'='の照合(latin1_swedish_ci、IMPLICIT)と(utf8_general_ci、COERCIBLE)の不正な組み合わせ2012-07-01 21:54:25,969[http-8080-1]エラーerrors.GrailsExceptionResolver-不正な組み合わせcom.mysql.jdbcでの操作'='の照合(latin1_swedish_ci、IMPLICIT)と(utf8_general_ci、COERCIBLE)java.sql.SQLException:操作' ='の照合(latin1_swedish_ci、IMPLICIT)と(utf8_general_ci、COERCIBLE)の不正な組み合わせ。 SQLError.createSQLException(SQLError.java:1075)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)at com.mysql.jdbc .MysqlIO.sendCommand(MysqlIO.java:1959)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)atcom.mysql.jdbc。ConnectionImpl.execSQL(ConnectionImpl.java:2568)at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2275)at com.ehs.GameNewsController $ _closure4.doCall(GameNewsController.groovy:27)at com.ehs.GameNewsController $ _closure4.doCall(GameNewsController.groovy)at java.lang.Thread.run(Thread.java:680)Thread.run(Thread.java:680)Thread.run(Thread.java:680)

だから私は何が悪いのですか。

4

3 に答える 3

3

エラーは、「latin1_swedish_ci」と「utf8_general_ci」の照合が混在していることを明確に示しています。latin1_swedish_ciCOLLATEにまだあるテーブルにフィールドがないことをもう一度確認してください。

于 2012-07-02T07:26:29.513 に答える
2

useUnicode=trueで試してください

 jdbc:mysql://localhost/db_name?useUnicode=true&characterEncoding=UTF-8

追加するように注意してください

dataSource {
    ...
   dialect = org.hibernate.dialect.MySQLDialect
   ...
于 2012-07-01T22:59:46.380 に答える
0

Linuxでも同じ問題がありました。テーブルエンジンをInnoDBに変更することは私を助けました。

于 2012-11-28T10:42:43.707 に答える