向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;