2016-07-24 3 views
1

私のJavaプロジェクトでは、[SqlExceptionHelper] Incorrect string value: '\xF0\x9F\x90\xBE V...'を取得していますが、MySQL WorkbenchはテーブルUTF-8であり、ワークベンチに「Brandst ä tter」の値を追加します。取得する[SqlExceptionHelper]不適切な文字列値: ' xF0 x9F x90 xBE V ...'テーブルがUTF-8にあります

私はワークベンチで照合順序をutf8からutf8mb4に変更しましたが、動作しませんでした。また、javaプロジェクトでは、application.propertiesファイルにjdbc.url = jdbc:mysql://localhost:3306/recommendations?useUnicode=true&characterEncoding=utf8utf8utf8mb4を入れたUnsupported character encoding 'utf8mb4')を使用しています。

また、utf8SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "db-name"を返します。

どうすればよいですか?

編集:データが挿入されています: "Loyߐ¾Virtual Pet Game"

Edit2:これで、私はより密接に見えるようになったので、this application's nameが問題を解決しました。私は何をすべきか? ?。ネグレクト奇妙Character.isISOControlと文字(、またはあなたがデータベースへの接続であなたのテーブルutf8mb4を必要とし、その後さらに強力な照合UTF-8

+0

DBにデータを挿入するJavaコードを追加できますか? –

+0

monkeyStix - 私が言ったように、私はutf8mb4を述べようとしましたが、うまくいきませんでした。私は間違ったことをしましたか? – Ran

+0

どのバージョンのmysqlを使用しますか? – monkeyStix

答えて

1

がある

はここで手がかりです:

\xF0\x9F\x90\xBE 

通知は最初のバイトが進F0つまりは4バイトの「文字」のUTF8のリードインでMySQLのutf8は3バイトより長い処理しません。。。。utf8mb4はありません

注:MySQL以外では、「UTF-8」は任意の長さの文字を意味します。 MySQLの内部では、 "utf8"と "utf8mb4"の間に混乱した区別があります。

+0

どうすれば設定できますか?私はjdbc.urlで試してみましたが失敗しました(私の質問を参照してください)、それは私がワークベンチを介してMySQLで設定するのを助けませんでした。 – Ran

+0

どのバージョンのJDBCですか? MySQLの? –

+0

JDBCのアイデアはありません、MySQLは5.7.12/13です – Ran

関連する問題