ERROR 1366 (HY000): Incorrect string value......(Mysql报错解决)
2019.11.29更新:發(fā)現(xiàn)了新的解決方法
錯(cuò)誤描述
在控制臺(tái)執(zhí)行插入操作的時(shí)候,Mysql報(bào)錯(cuò)ERROR 1366 (HY000): Incorrect string value……插入操作失敗,如下圖所示
報(bào)錯(cuò)原因:
因?yàn)椴迦氲臄?shù)據(jù)中包含中文字符,而現(xiàn)在的mysql的字符集無(wú)法表示中文字符,所以才會(huì)有上述的錯(cuò)誤。
問(wèn)題解決
既然在mysql的控制臺(tái)無(wú)法插入,就嘗試在Navicat執(zhí)行插入的代碼,如下圖:
在Navicat打開數(shù)據(jù)表一看,發(fā)現(xiàn)居然插入成功了(似乎問(wèn)題已經(jīng)解決了)
但是,在MySQL的控制臺(tái)執(zhí)行查詢操作,發(fā)現(xiàn)所有的中文都顯示為亂碼。
于是,我們執(zhí)行set name gbk;命令,可以看到現(xiàn)在亂碼問(wèn)題已經(jīng)解決了。關(guān)于這個(gè)命令,我發(fā)現(xiàn)有個(gè)大佬寫得很詳細(xì),這里不加贅述:mysql set names 命令和 mysql 字符編碼問(wèn)題
新的解決方案:
在一開始先執(zhí)行set name gbk;命令,再執(zhí)行數(shù)據(jù)插入操作就不會(huì)出現(xiàn)保存了。不同的MySQL版本之間可能會(huì)有差異,我的MySQL版本是5.6。
補(bǔ)充
在查找資料的時(shí)候,發(fā)現(xiàn)了一些有用的命令,記錄一下:
- 查看各級(jí)的字符集編碼
- 修改數(shù)據(jù)庫(kù)的字符編碼
- 修改數(shù)據(jù)表的字符編碼
- 修改數(shù)據(jù)表字段的字符編碼
解決方法有點(diǎn)非正統(tǒng),但也算是解決了我的問(wèn)題,如果下次遇到其他情況在進(jìn)行補(bǔ)充。
總結(jié)
以上是生活随笔為你收集整理的ERROR 1366 (HY000): Incorrect string value......(Mysql报错解决)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: H. Texas hold'em Pok
- 下一篇: iOS - 使用 SQLite 数据库实