關於“WARN: SQL Error: 1366, SQLState: HY000”錯誤的解決方案


向MySQL導入數據時,出現以下錯誤提示:

org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Incorrect string value: '\xE5\x95\x8A\xE5\xAE\x9E...' for column 'titel' at row 1


【原因】
這是因為 MySQL 數據庫字符集設定是 utf8,而導入的數據含有非 utf8 編碼的字符(特別是中文或其它非英文字符),所以出現此錯誤。

【解決】
方法1:
把要導入的數據轉換為 utf8 編碼后再導入。(如果是txt、csv等文本數據,可以用記事本打開,然后另存為 UTF-8 編碼的文本即可)

方法2:
1) 修改 MySQL 中要導入數據的數據表字符集,例如:改為中文gbk字集

修改代碼(MySQL控制台):
mysql> alter table content modify author varchar(30) character set gbk;
注意:要將數據表里面的所有列都要逐一這樣處理。然后再重新導入數據,即可成功!

2) 頁面需要聲明用GBK或者GB2312編碼,而且在頁面需要進行轉碼,例如:
String content1 = new String(request.getParameter("content1").getBytes("ISO-8859-1"));
頁面讀取不需要轉碼,寫入需要轉碼。

方法3:
修改整個數據庫的編碼:
mysql> alter database testdb character set gbk;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM