標籤:key nod size lte str nbsp efault code 錯誤提示
使用mysql往usercase表中插入含有中文的資料,報錯[Err] 1366 - Incorrect string value: ‘\xE5\xB0\x8F\xE5\xB0\x8F‘ for column ‘name‘ at row 1
建表語句及插入的資料語句如下
create table usercase(id int primary key auto_increment,name varchar(10),sex char(2));-- 插入一條資料insert into usercase(name, sex) values("小小", ‘男‘);
然後MySQL會有錯誤提示
下面看一下usercase這個表的建表資訊,使用下面的命令
show table usercase;
-- usercase是表名
資訊顯示如下:
從ENGINE=InnoDB DEFAULT CHARSET=latin1,可以看出表的預設編碼是latin1,下面開始動手解決
解決方案
輸入下面指令,修改usercase表的預設編碼
alter table usercase default character set utf8;
然後查看一下修改結果
發現此時usercase表的預設編碼已經是utf-8了,但是name和sex的編碼依舊是latin1,此時插入中文記錄,依舊會失敗。下面對name和sex欄位的編碼格式進行修改
輸入下面指令對name欄位的編碼進行修改
alter table usercase change name name varchar(10) character set utf8;-- name是usercase的欄位名
結果如下
輸入下面指令對sex欄位編碼進行修改
alter table usercase change sex sex char(2) character set utf8;
結果如下
修改完成,下面插入一條含有中文的資料
插入成功,問題暫時解決
關於mysql建立的表不能插入中文的問題&解決辦法,比如[Err] 1366 - Incorrect string value: '\xE5\xB0\x8F\xE5\xB0\x8F' for column 'name' at row 1