我試圖確定一個Java程序每天晚上加載MySQL表的錯誤。數據與cedilla - Ç - 在mysql表中
錯誤日誌中爲值java.sql.SQLException:不正確的字符串值: '\ XEF \ XBF \ XBD \ XEF \ XBF \ XBD ...' 列 '經理' 在行1。
最後確定數據中有一個新名稱(從平面文件中加載) - FRANÇOIS - 它是發出錯誤的cedilla。程序仍然加載所有內容,只是將該字段留空。當我運行SHOW FULL COLUMNS FOR tablename
時,它是latin1_swedish_ci
。我對於整理,charsets知之甚少。 我應該如何將排序規則更改爲接受此規則?
SHOW CREATE TABLE語句顯示它使用了默認字符集,它是latin1。我將不得不驗證是否允許我訪問將該表更改爲uft8,或者如果出於某種原因缺省值爲latin1。 – BigRedEO
這是古老的歷史。最新版本的MySQL默認爲utf8mb4。不過,你可以在每個'VARCHAR'上明確指定'CHARACTER SET ...'。 –
如何更改特定列的字符集?這將是最好的解決方案,因此它不會導致任何其他可能使用同一張表的程序出現問題。 – BigRedEO