私は毎晩MySQLテーブルをロードするJavaプログラムでエラーを判断しようとしていました。ログ内のセディーダ - ñ - in mysqlテーブル
エラーがます。java.sql.SQLExceptionた:不正な文字列値: '\のXeF \ XBF \ XBD \のXeF XBF \ XBD ... \' 列 '管理者' の行1で。
最後に、フラットファイルから読み込んだ新しい名前(FRANÇOIS)が見つかりました。エラーを出していたセディラでした。プログラムはまだすべてをロードしましたが、そのフィールドを空白のままにしました。
私がSHOW FULL COLUMNS FOR tablename
を実行したとき、それはlatin1_swedish_ci
でした。私は照合、charsetsについてほとんど知っていません。 これを受け入れるために照合順序を変更する必要はありますか?
SHOW CREATE TABLEステートメントは、デフォルトの文字セット(latin1)を使用したことを示しています。そのテーブルをuft8に変更するアクセスが許可されているかどうか、または特定の理由があった場合にはデフォルトがlatin1であるかどうかを確認する必要があります。 – BigRedEO
これは古代の歴史です。最新のMySQLバージョンは、デフォルトでutf8mb4になります。それでも、各VARCHARに明示的に 'CHARACTER SET ...'を指定することができます。 –
特定の列の文字セットを変更するにはどうすればよいですか?それは同じテーブルを使用しているかもしれない他のプログラムで問題を起こさないように最善の解決策になります。 – BigRedEO