MySQL數據庫插入中文失敗問題

問題描述:

創建數據庫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。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章