有時候我們在往數據庫中輸入信息時,如果輸入的內容是中文,會報錯“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('你好'); /*建表之后插入一條帶有中文的數據*/