Mysql新建表,插入中文時報錯“Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column”問題


有時候我們在往數據庫中輸入信息時,如果輸入的內容是中文,會報錯“Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column”。

例如:

CREATE TABLE test(ID INT PRIMARY KEY AUTO_INCREMENT

, test_name VARCHAR(20) , test_num INT);                                                       /*建立一個表*/

insert into test(test_name) values('你好');                                                         /*建表之后插入一條帶有中文的數據*/

 

解決的方法:

1、在建立表時設置默認字符串編碼方式為utf8

CREATE TABLE test2(ID INT PRIMARY KEY AUTO_INCREMENT

, test_name VARCHAR(20) , test_num INT)default charset = utf8;                        /*建立一個表,加上“default charset = utf8”,設置默認字符串編碼方式為utf8。*/

insert into test2(test_name) values('你好');                                                      /*建表之后插入一條帶有中文的數據*/

這次就可以成功添加

 

2、已經添加的表,需要設置一下:ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

ALTER TABLE test CONVERT TO

CHARACTER SET utf8 COLLATE utf8_unicode_ci;                                               /*例如剛剛建立的test表,插入中文時會報錯,現在對其進行設置*/

insert into test(test_name) values('你好');                                                        /*設置之后插入一條帶有中文的數據*/

 

3、直接修改數據庫的字符串編碼屬性:ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci

ALTER DATABASE testdb CHARACTER

SET utf8 COLLATE utf8_unicode_ci;                                                                /*修改數據庫testdb的編碼方式*/

CREATE TABLE testdb.test3(ID INT PRIMARY KEY AUTO_INCREMENT

, test_name VARCHAR(20) , test_num INT)default charset = utf8;                        /*建立一個表,加上“default charset = utf8”,設置默認字符串編碼方式為utf8。*/

insert into testdb.test3(test_name) values('你好');                                             /*建表之后插入一條帶有中文的數據*/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM