mysql存储中文字符乱码

在使用原生的JDBC的同学不知道有没有遇到过类似的问题mysql中的中文乱码的问题,首先表现就是我们存储的时候参数明明使用的是中文,但是Java代码执行完成后数据库中变成了  “???” 也就是中文乱码。遇到这个别着急,这里有几种方式我们排除:

1.先确定数据库新建表的时候采用的存储引擎是支持中文的:就是在建表的时候在后面跟上:engine=InnoDB default character set=utf8; 

下面是我的建表语句:

create TABLE user(
`id` INT(11) PRIMARY KEY auto_increment comment '主键',
`user_name` VARCHAR(20) not NULL DEFAULT '' comment '用户名',
`age` int(4) not NULL DEFAULT 0 comment '年龄',
`phone_number` VARCHAR(11) NOt NULL DEFAULT '' comment '电话',
`sex` tinyint(4) not NULL DEFAULT 0 comment '性别',
`pass_word` VARCHAR(20) not NULL DEFAULT '' comment '密码',
`birthDay` TIMESTAMP NOt NULL DEFAULT CURRENT_TIMESTAMP 
)engine=InnoDB default character set=utf8;
这里我采用的是 InnoDB 存储引擎,设置的编码格式是 utf8;

2.这样的话要是还是存储的时候产生中文乱码:
看看咱们的数据库连接的时候设置的编码问题:url=jdbc:mysql://127.0.0.1:3306/servlet?useUnicode=true&characterEncoding=utf8
在建立数据库的连接的时候,需要设置这一句话,数据库才是在连接时使用的我们自定义的编码格式。(我就是这里出的问题)

3.要是以上的两种方式都不行,还有第三种问题:
在添加参数的时候加上 getBytes("ISO-8859-1"), "UTF-8")
这句话就是说把字节流以utf8格式进行编码存储
4.要是还不行:那就去修改mysql的安装路径下的文件:
编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;

应该问题不大了。多试试,要是get/post提交的话,还要考虑传输过程中的乱码问题。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值