2016-08-23 9 views
1

MySQLの文字セットをutf8mb4に設定しました。varchar型でうまく動作します。MysqlのJSON型にバネデータを使った乱雑なコードがありますjpa

JSON型の場合、JSONをspring-data-jpaを使って文字列として読み込みながら節約しても問題ありません。

以下の設定を試しましたが、動作しません。

spring.datasource.url = jdbc:mysql://localhost:3306/TAIMIROBOT?&useUnicode=yes&characterEncoding=UTF-8 
spring.datasource.init-sql="SET NAMES utf8mb4 COLLATE utf8mb4_bin;" 
+0

ファイルの読み取り中に何らかの変換が行われていないかどうかを確認します。 –

+0

あなたが読んだJSONのサンプル出力を表示してください。 –

+0

{"items":[{"itemName": "纱布"、 "必要":4、 "added":0}]}これは私が読もうとしているものです。しかし、実際の出力では、 "纱布"は "ºº±å¸"になっています。 –

答えて

0

この問題は修正されました。 bugs.mysql.com/bug.php?id=80631

ResultSet.getString()は時々 JSONデータ型の列のデータ化けを返さ。これは、JSONデータが utf8mb4文字セットを使用してMySQLでバイナリコード化されていて、ISO-8859-1 文字セットを使用してConnector/Jでデコードされたためです。

修正プログラムはConnector/J 6.0.5に含まれています。 5.1.40 の変更履歴のエントリが6.0.5の変更履歴に含まれています。

同じ問題がある場合は、maven pomファイルのコネクタバージョンを6.0.5に変更してください(mavenを使用している場合)。

関連する問題