java的字符集和数据库的字符集_JAVA编码字符集及JDBC连接数据库指定字符集

java编码字符集及jdbc连接数据库指定字符集

2012-03-2417:11:12|分类:java|标签:|字号大中小订阅

java中String的编码格式为unicode,如果要将中文插入mysql,则表中字符列的编码属性应该设为utf-8.

create table seugs(

number int(11)default NULL,

name nchar(10)default NULL,

sex nchar(4)default NULL,

home nchar(100)default NULL,

college nchar(50)default NULL,

benke nchar(50)default NULL,

birth date default NULL,

rxtime date default NULL

)ENGINE=InnoDB DEFAULT CHARSET=utf8。

在java连接mysql时,连接语句可设置字符集,语法如下,注意表名跟属性设置之间用问号连接

conn=

DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding= utf8","root","syq");

如果使用命令行或者IDE工具直接执行SQL语句,如果查询条件里有中文,则还应该设置MYSQL 的字符编码。原因如下:

MySQL处理连接时,外部连接发送过来的SQL请求会根据以下顺序进行转换:

character_set_client//客户连接所采用的字符集

|

character_set_connection//MySQL连接字符集

|

character_set_database//数据库所采用的字符集(表,列)

|

character_set_results//客户机显示所采用的字符集

一.产生乱码的根本原因在于:

1.客户机没有正确地设置client字符集,导致原先的SQL语句被转换成connection所指字符集,而这

种转换,是会丢失信息的,如果client是utf8格式,那么如果转换成gb2312格式,这其中必定会丢

失信息,反之则不会丢失。一定要保证connection的字符集大于client字符集才能保证转换不丢失信息。

2.数据库字体没有设置正确,如果数据库字体设置不正确,那么connection字符集转换成database

字符集照样丢失编码,原因跟上面一样。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值