JDBC查询条件中包含中文,无查询结果(编码问题)

mysql:
+--------------------------+--------------------------------------------------+
| Variable_name            | Value                                            |
+--------------------------+--------------------------------------------------+
| character_set_client     | gbk                                             |
| character_set_connection | gbk                                             |
| character_set_database   | utf8                                             |
| character_set_filesystem | binary                                           |
| character_set_results    | utf8                                             |
| character_set_server     | latin1                                             |
| character_set_system     | utf8                                             |

jdbc指定编码:gb2312

问题描述:
查询条件:where name='关税'
client 查询结果:正常显示
jdbc 查询结果:无显示

已解决:
jdbc和client的角色都是客户端,'关税'分别作为gbk ,gb2312进行了查询。jdbc指定了utf8。
jdbc在连接时,指定编码应该和client保持一致。

实践得出的结论:
my.ini文件需要进行以下配置
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
client和server都会读取这个文件,[client]以下的参数是由客户端读取,不用重启服务,重新打开客户端便会生效
[mysqld]以下的参数由服务端读取,重启服务后生效。
以上配置用来设置character_set_client     character_set_connection character_set_server都为utf8.



以下援引其他博文:
        2.mysql数据库的编码,原则上默认的编码是mysql安装的默认编码,也可以在建库时用语句来执行:create databasedbname default character set utf8;
        3.mysql数据表的编码,原则上默认是第二步建立的数据库的编码。提倡不要在creat table时加上编码
        4.利用
程序 建立mysql连接时,连接字符串使用的编码。如jdbc,这个地方必须是与你页面的编码一致。
        5.WEB程序页面的编码,charset=utf8;与4必须一致。
      除上面5个地方外,另有一个不是编码者所能控制的,那就是浏览用户的浏览器的编码,一般是自动选择,就不列入了。
      
   上述五个地方,我所知道的保证不出现乱码的方法是:
    2,3比较重要,我所理解的必须是一致。建议是在建库语句时带上编码,建表时就不指定编码了。
    4是必须的
    5在WEB页面中必须设置成上面的统一的编码。

请不要结束,继续往下看:上述方法中必须统一是统一的编码,我使用的是utf8,为什么使用utf8是我正要说的。
备注说明
      1、统一使用GBK编码的话,大多数时候是不会出问题。但是如果遇到·这种字符,这个字段后的所有汉字都回出现乱码。这在oracle中同样存在。因为mysql,oracle的默认编码似乎都是(mysql-latin1亦是)iso-8559-1,对某些特殊字符会出现乱码。因此建议使用utf8。utf8有利于建设网站的其它版本,比如英文版...,而且设置似乎也没有丝毫麻烦。。


参见:http://blog.csdn.net/twosecond/article/details/4289052


未解决的:
1.关于mysql字符集的问题,以及character_set_client     character_set_connection    character_set_server     character_set_system,还要研究:
http://dev.mysql.com/doc/refman/5.6/en/charset-applications.html
http://dev.mysql.com/doc/refman/5.6/en/charset.html
http://www.th7.cn/db/mysql/201412/84636.shtml
还有印象笔记

2.了解字符集
这里jdbc指定了utf8,而client是gbk,也是对的。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值