これが私のシナリオです。Hibernate を使用して、MySQL にアジア文字を含む一連の文字列を保存します。これらの文字列は、varbinary 列に書き込まれます。保存操作中はすべて正常に動作します。DB には正しい値 (バイトのシーケンス) が含まれています。保存した文字列を (再び Hibernate を使用して) クエリすると、正しい結果が得られます。しかし、Hibernate が文字列が属するエンティティに DB の値を入力すると、それらを取得したクエリで使用した値とは異なる値が得られます。正しい値を受け取る代わりに、一連の FFFD 置換文字を受け取ります。
例: DB に「하늘」を保存してクエリを実行すると、結果の文字列は \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD になります。
- DB 接続には、次のパラメーター セット useUnicode=true&characterEncoding=UTF-8 があります。
Hibernate に次の構成を使用してみましたが、問題は解決しませんでした:
- connection.useUnicode = true
- connection.characterEncoding = UTF-8ちなみに、MySQL カラムが varchar 型の場合、これはすべて正常に機能します。私は何が欠けていますか?助言がありますか?ありがとう