MySQL-修改表的編碼和列的編碼-Incorrect string value: '\xE6\xB1\x9F\xE5\xAE\x81...' for column 'unitname' at row

ZHOU_VIP發表於2017-11-14

修改表的編碼方式:該命令用於將表test的編碼方式改為utf8

ALTER TABLE `test` DEFAULT CHARACTER SET utf8 ; 

修改欄位的編碼方式:該命令用於將表test中name欄位的編碼方式改為utf8

ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL ; 

這是因為新增時,unitname欄位是中文,表的欄位編碼不一致報錯了:

Caused by: java.sql.SQLException: Incorrect string value: '\xE6\xB1\x9F\xE5\xAE\x81...' for column 'unitname' at row 1

出現這個錯誤的原因是,資料庫的編碼格式為latin1 而我要將utf8的中文插入到資料庫中,

先檢視了該表的編碼:


然後我修改了該表的編碼:


用Navicat檢視,發現列的編碼沒有更改過來:


單獨用命令對列修改編碼:


沒有出現latin1,應該是成功了


測試了下,可以實現新增不報錯了



相關文章