资讯专栏INFORMATION COLUMN

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

tylin / 2487人阅读

摘要:指定编码问题描述查询条件关税查询结果正常显示查询结果无显示已解决和的角色都是客户端,关税分别作为,进行了查询。在连接时,指定编码应该和保持一致。提倡不要在时加上编码利用程序建立连接时,连接字符串使用的编码。程序页面的编码,与必须一致。

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/twosecon...

未解决的:
1.关于mysql字符集的问题,以及character_set_client character_set_connection character_set_server character_set_system,还要研究:
http://dev.mysql.com/doc/refm...
http://dev.mysql.com/doc/refm...
http://www.th7.cn/db/mysql/20...
还有印象笔记

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76559.html

相关文章

  • 全栈通用分页查询

    摘要:前言给大家讲解全栈通用分页查询码字不易,点个关注转载请说明开发工具思维导图目录一所需要的包二后端数据库帮助类通用查询分页父类书籍层类分页工具类三前端文件助手类前端界面四一所需要的包二后端数据库 前言:给大家讲解全栈通用分页查询 码字不易,点个关注 转载请说明! 开发工具:eclipse 思维...

    Ashin 评论0 收藏0
  • 那些年,我们一起误解过的REST

    摘要:通过增删查改,引起资源状态的改变,称为状态转移。用于获取资源的元信息。方法与方法类似,都可以查询资源的元信息放在的,但不会返回资源的表述。表示请求有问题,如参数错误等。表示当前请求的某前置条件不符合。网关错误,从上游服务器收到无效响应。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由sammyshen 发表于云+社区专栏 最近几年REST API越来越流行,特别是...

    DesGemini 评论0 收藏0
  • 关于MySQL的知识点与面试常见问题都在这里

    摘要:串行最高的隔离级别,完全服从的隔离级别。但是这将严重影响程序的性能。此外,垂直分区可以简化表的结构,易于维护。 我自己总结的Java学习的一些知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java_Guide 书籍推荐 《高性能MySQL : 第3版》 文字教程推荐 MySQL 教程(菜鸟教程...

    BothEyes1993 评论0 收藏0
  • 关于MySQL的知识点与面试常见问题都在这里

    摘要:串行最高的隔离级别,完全服从的隔离级别。但是这将严重影响程序的性能。此外,垂直分区可以简化表的结构,易于维护。 我自己总结的Java学习的一些知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java_Guide 书籍推荐 《高性能MySQL : 第3版》 文字教程推荐 MySQL 教程(菜鸟教程...

    newtrek 评论0 收藏0
  • 关于MySQL的知识点与面试常见问题都在这里

    摘要:串行最高的隔离级别,完全服从的隔离级别。但是这将严重影响程序的性能。此外,垂直分区可以简化表的结构,易于维护。 我自己总结的Java学习的一些知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java_Guide 书籍推荐 《高性能MySQL : 第3版》 文字教程推荐 MySQL 教程(菜鸟教程...

    hss01248 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<