關於mysql建立的表不能插入中文的問題&解決辦法,比如[Err] 1366 - Incorrect string value: '\xE5\xB0\x8F\xE5\xB0\x8F' for column 'name' at row 1

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.