使用navicat直接插入數據,出現ERROR 1366。
出現的原因:在編寫數據庫表的時候,沒有指定字符集,默認字符集為latin1,此時通過插入語句插入中文會報錯。
解決方式:
直接運行以下的代碼,將database和server的字符集改成utf8:
show variables like '%char%';
set character_set_server=utf8;
set character_set_database=utf8;
依然沒有解決問題的話,查看表的具體字段的字符集,可以通過查看創建語句查看:
show create table 表名;
也可以用以下代碼去查看每個字段的全部信息:
show full columns from 表名;
檢查數據庫此字段的字符集與整理字符集是否與SQL語句傳遞數據的字符集相同;不相同則會引發MySQL1366錯誤。
如果字段的character是latin1的話,將其改為utf8即可。
具體代碼如下:
alter table 表名 modify `字段名` varchar(255) CHARACTER set utf8 collate utf8_general_ci not null default '';
