今天遇到Mysql插入數據裡有中文字符出現Incorrect string value的錯誤 背景:CMD裡直接敲代碼插入數據 提示的部分截取為:ERROR 1366 (HY000): Incorrect string value 百度了一下,說是編碼問題,show variables like 'character%' 查看後,發現所有編碼都為UTF8,並沒有錯 繼續查原因,網上有人說是mysql的編碼集的問題以下為原文: "原來問題出在mysql上,mysql如果設置編碼集為utf8那麼它最多只能支持到3個字節的UTF-8編碼,而4個字節的UTF-8字符還是存在的,這樣一來如果你建表的時候用的utf8字符集出異常就理所當然了。 解決方法很簡單,修改字段或者表的字符集為utf8mb4。比較蛋疼的是,字符集utf8mb4在mysql 5.5.3之後才支持。。。" 看他說的這些結果要升級才能修改,果斷放棄,並且也感覺應該不是我遇到的問題。後來想了想,是不是在CMD裡輸入文字的編碼的問題呢,試著先設置客戶端命令的編碼,再插入果然正確!然後百度搜索客戶端編碼相關的問題也發現有和我出現過同樣問題的。 解決方法 : set names gbk //設置客戶端的編碼格式,也就是你敲入的是什麼編碼的,客戶端會自動把你的命令轉成UTF8,也就是數據庫編碼也還是UTF8 或者在安裝目錄下找到 my.ini 把default-character-set=utf8 改成default-character-set=gbk;