今天遇到Mysql 插入數據裏有中文字符出現 Incorrect string value 的錯誤

背景:CMD裏直接敲代碼插入數據 mysql

提示的部分截取爲:ERROR 1366 (HY000): Incorrect string value sql

百度了一下,說是編碼問題,show variables like 'character%' 查看後,發現全部編碼都爲UTF8,並無錯 數據庫

繼續查緣由,網上有人說是mysql的編碼集的問題如下爲原文: 編碼

"原來問題出在mysql上,mysql若是設置編碼集爲utf8那麼它最多隻能支持到3個字節的UTF-8編碼,而4個字節的UTF-8字符仍是存在的,這樣一來若是你建表的時候用的utf8字符集出異常就理所固然了。 spa

解決方法很簡單,修改字段或者表的字符集爲utf8mb4。比較蛋疼的是,字符集utf8mb4在mysql 5.5.3以後才支持。。。" string

看他說的這些結果要升級才能修改,果斷放棄,而且也感受應該不是我遇到的問題。後來想了想,是否是在CMD裏輸入文字的編碼的問題呢,試着先設置客戶端命令的編碼,再插入果真正確!而後百度搜索客戶端編碼相關的問題也發現有和我出現過一樣問題的。 百度

解決方法 : 搜索

set names gbk    //設置客戶端的編碼格式,也就是你敲入的是什麼編碼的,客戶端會自動把你的命令轉成UTF8,也就是數據庫編碼也仍是UTF8  方法

或者在安裝目錄下找到 my.ini im

default-character-set=utf8 改爲default-character-set=gbk;

相關文章
相關標籤/搜索