1

MEDIUMBLOB各テーブルにあるテーブルにフィールドを持つデータベースがありENGINE=InnoDB DEFAULT CHARSET=utf8ます。

URLでデータベースに接続しuseUnicode=true&characterEncoding=UTF8&character_set_client=UTF8&character_set_database=UTF8&character_set_results=UTF8&character_set_server=UTF8&character_set_system=UTF8ます。

useUnicode=true&characterEncoding=UTF8(私は同じ結果で試しました。)

コマンドラインから使用してデータベースの値を見ると、mysql非 ASCII 文字が問題なく表示されます。

しかし、使用してデータベースから文字列を読み込むと、executeQuery() getString()意味不明になります。値を正しく読み取るにはどうすればよいですか?

私はlog4jを使用して、データベースに書き込んでいる文字列、読み返した文字列、および書き込んだ文字列を表示しています。

4

1 に答える 1

5

これは文字列ではなく BLOB です。したがってgetBytes、手動でデコードしてください。

 new String( bytes, "UTF-8"); //Subsitute "UTF-8" with whatever encoding the blob is in

より透過的なサポートが必要な場合は、UTF-8 で mediumtext 列を定義してください。その後、すべての設定が有効になり、getString を使用して適切な文字列を自動的に取得します。

于 2013-02-06T13:32:50.630 に答える