MySQL数据表出现中文乱码

应用程序写入mysql时候报错:java.sql.SQLException: Incorrect string value: '\xE9\x8D\x9D\xEE\x81\x84...' for column 'name' at row 1

mysql在插入中文时候出现由于默认情况下,mysql的字符集是latin1(ISO_8859_1),
如果数据库库没有指定对应的编码,下面的表的编码也会跟着库编码一样。

可以通过一下方式修改:

* 查询某个数据库的字符集:查询某个数据库的创建语句
    show create database 数据库名称;
-------------------------------------------------------------------------    
*修改数据库的字符集为utf8
    alter database 数据库名称 character set utf8;

查看的具体表的编码方式

SHOW CREATE TABLE test.customers;
ALTER TABLE test.customers CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

修改完以后还需要注意一点:应用程序连接数据库的时候需要制定编码方式:

properties.setProperty("url", "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8")

结果虽然出现了, 但编码还是出现错误

【中文乱码总逃脱不了编码格式以及匹配的问题】!!! 

 解决中文乱码问题:

之所以会显示乱码,就是因为MySQL客户端输出窗口显示中文时使用的字符编码不对造成的,可以使用如下的命令查看输出窗口使用的字符编码

show variables like ‘char%’; 

而后我又对idea的编码设置全改为utf-8

后,继续运行,依旧出现乱码

如果还是不行,一定是数据库版本以及连接数据库使用的jdbc对应的jar文件和你连接语法的编码不匹配
数据库为5.0系列版本 

将配置文件的url那行末尾加上&usessl=false

解决办法参考最全idea java连接mysql数据库中文乱码解决方案_无形风的博客-CSDN博客_java连接mysql中文乱码 

成功解决!谢谢大神们的博客

关于SSL的介绍可以查看以下链接

连接数据库时在url后面加上useSSL=false的作用

Java-IDEA错误-Error: java: 非法字符: '\ufeff'- Error: java: 需要class, interface或enum

解决办法:

Java-IDEA错误-Error: java: 非法字符: ‘\ufeff‘ Error: java: 需要class, interface或enum_gaog2zh的博客-CSDN博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值