我用Python寫ORM,插入一條數據進MySql的時候報了:1366 Incorrect string value: '
這條數據是有中文的,所以很明顯是編碼問題!
我插入的數據格式:
Book.objects.create(name="Java基礎",price=55,pub_date="2010-10-22",author="Kotlin")
以下是我的解決辦法!
第一步:
看我的文章,中有一篇是修改MySql的my.ini配置文件,修改MySql的字符編碼格式修改成utf8格式的編碼!
有可能你這步改完就可以了! 也有可能這步操作完還是報錯!那就看第二步。
第二步:
第一步操作完了,但是添加數據的時候還是報錯,原因是因為第一步還沒操作完,你就已經建了一張表,我的表名是app_book。所以這張app_book的字符編碼還是按我沒修改字符編碼之前的編碼格式,所以這個時候我需要將這張表的編碼格式轉換一下,具體操作如下!
比如:你可以先查看這張app_book表中的每個字段的編碼格式
show full fields from app_book;
改變表的編碼,為 utf8mb4 或者 utf8
alter table app_book convert to character set utf8mb4;
OK! 完成以上操作,再次執行ORM語句:
Book.objects.create(name="Java基礎",price=55,pub_date="2010-10-22",author="Kotlin")
這次就沒報錯了,添加成功!