標籤:io ar java for sp 資料 on 問題 amp
java.sql.SQLException: Incorrect string value: ‘\xE6\x88\x91\xE7\x9A\x84...‘ for column ‘groupName‘ at row 1
甚是糾結,我原本以為應該是以下問題之一:
(1).建立資料庫的時候資料編碼設定錯誤
(2).串連資料庫的時候資料編碼設定錯誤
對於(1),我刪除來原來的資料庫,重新建立一個新的資料庫在設定編碼時,我的設定如下:
character set:utf8 -- UTF-8 Unicode
collation:utf8_general_ci
發現這樣設定之後,不能解決這個問題。
對於(2),我將串連語句寫為:
"jdbc:mysql://" + ip + ":3306/users?useUnicode=true&characterEncoding=utf8"
但問題仍然沒有解決。
又仔細觀察我寫的程式,發現在程式中有向資料庫中建立表的操作,語句如下:
"create table friendsList (qq varchar(7) primary key,remark varchar(20),groupName varchar(20)) ;"
這樣,問題變得明朗了,原來建立每張表的時候都必須設定資料編碼方式,改後的語句如下:
"create table friendsList (qq varchar(7) primary key,remark varchar(20),groupName varchar(20)) charset utf8 collate utf8_general_ci;"
總結一下,引起本文章標題這樣的問題的原因有以下幾個:
(1).建立資料庫的時候資料編碼設定錯誤
(2).串連資料庫的時候資料編碼設定錯誤
(3).建立表的時候資料編碼設定錯誤
java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'