【描述】
mysql数据编码中,数据库、数据表、数据字段都是有自己的编码,如果新建时不主动定义编码集,就会使用系统默认的编码集(mysql很可能是latin1)。
并且数据库、数据表、数据字段的是有优先级区别的,是数据字段 > 数据表 > 数据库。举个例子:
如果数据库使用utf-8,数据表使用ascii,数据字段使用latin1。这时,你的mysql对外表现的数据编码集就是latin1,如果传输进来的数据的编码方式是utf-8,就不可能解析成功。
【解决方案】
将字段编码改成你需要的编码(比如 utf-8),这时由于优先级的存在,数据库和数据表的编码方式就会被忽视。
【总结】
设计数据库的时候,尽量自己设置字符集,不要使用系统默认的编码方式,避免出现不可预知的问题而浪费时间。