問題描述:
創建數據庫test字符集爲utf8,表user字符集爲utf8。插入中文字符時出現如下錯誤:
ERROR 1366 (HY000): Incorrect string value: '\xCE\xE2\xD9\xBB' for column 'user_name' at row 1
解決方法:
方法一: 在mysql命令行下執行:SET NAMES GBK;(設置客戶端字符集)
再次插入含有中文的字符時,插入成功。
方法二:更改客戶端字符集:
show variables like 'char%';
set character_set_client=gbk;
其實本質上兩種方法是一樣的,只是操縱方法不同而已。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面解釋爲什麼要設置爲gbk:
utf8也是支持讀寫中文字符的,按照網上的解決步驟,將character_set _client設置爲utf8爲什麼還是插入不進中文。如果是在Linux下是可以解決問題的。原因就在於,我是在Windows平臺的DOS中運行的mysql。
DOS下默認的字符集是:gbk,可以在DOS下使用如下命名查看。代碼活動頁:936 對應的編碼格式是GBK
當你的DOS編碼是GBK,mysql編碼爲utf8,因此mysql會把dos的gbk字符當做utf8來處理,就當然會出問題。因此將mysql的character_set_client設置爲gbk就可以解決問題了。
當然你也可以改變DOS下的默認編碼,utf8的代碼活動頁是:65001
使用命令:chcp 65001,將默認編碼改爲utf8。