首先确定你传入的数据是中文,不同环境没办法细说。此处我把从web前台传入的数据获取来并打印出来确定为中文,但在写入数据库时出现如标题所示错误。所以问题出在数据库中的编码设置。因此在mysql命令行界面首先输入set names utf8;
保证数据库编码设置为utf8。
我的数据库名为travel,需要写入的表为tab_user,此时输入show create table tab_user;
查看表创建信息,如下图红色框,其字符为latin1,因此错误出在此处。更改代码如下(tab_user、name为表名、字段名,此处需要替换成自己的)
alter table tab_user change name name varchar(100) character set utf8 NOT NULL;