错误描述:
mysql [portaldb]> insert into prod_product values (5,’ats’,’1’,’最终事物一致’,”,’最终事物一致’,’1’,’1’,null,’http://130.51.23.246:20881/ipaas/ats/manage/create‘,null,null,null,null,null,null,null,null);
error 1366 (hy000): incorrect string value: ‘\x80\xe7\xbb\x88\xe4\xba…’ for column ‘prod_name’ at row 1
mysql [portaldb]>
可先阅读:
sqlyog v11.24查询mysql5.6.24中文乱码的解决方法
其实还是字符集的问题。mysql安装后设置为gbk,而我建表的时候用的是utf8。
mysql [portaldb]> show create table prod_product;| prod_product | create table `prod_product` ( `prod_id` smallint(6) not null auto_increment, `prod_en_simp` varchar(20) collate utf8_bin not null default '', `prod_type` varchar(2) collate utf8_bin not null, `prod_name` varchar(60) collate utf8_bin not null, `prod_logopic_id` varchar(10) collate utf8_bin not null, `prod_desc` varchar(255) collate utf8_bin not null default '', `prod_valid_flag` varchar(2) collate utf8_bin not null default '1', `prod_sale_flag` varchar(2) collate utf8_bin not null default '1', `prod_param` varchar(255) collate utf8_bin default null, `prod_open_restfull` varchar(255) collate utf8_bin not null default '', `prod_start_restfull` varchar(255) collate utf8_bin default null, `prod_stop_restfull` varchar(255) collate utf8_bin default null, `prod_mdypwd_restfull` varchar(255) collate utf8_bin default null, `prod_fullclear_restfull` varchar(255) collate utf8_bin default null, `prod_keyclear_restfull` varchar(255) collate utf8_bin default null, `prod_seltedkey_restfull` varchar(255) collate utf8_bin default null, `prod_cancle_restfull` varchar(255) collate utf8_bin default null, `prod_used_amount_restfull` varchar(255) collate utf8_bin default null, primary key (`prod_id`)) engine=innodb auto_increment=13 default charset=utf8 collate=utf8_bin |
尝试把表改建为utf8的,插入也只是减少了错误(原来插入26条有20条报错,改了之后有5条报错),但是并没有根治。
最后,还是需要在数据库服务端设置字符集为utf8,问题解决。
总结:
想对中文支持,还是全部统一用utf8好。虽然用gbk可能也是可以,但是毕竟现在整个开发包括javaee都是以utf8为标准了。
2015.6.25