今天遇到一个编码问题
问题描述:mysql数据库插入中文记录后,页面上传中文值进行查询,在数据库中查不到结果,所使用的框架技术如下:
数据库Mysql,java,Ibatis,jsp
定义的编码格式如下:
JSP编码格式:UTF-8 Java编码格式:UTF-8
Tomcat中的server.xml中也设置了编码格式,如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
最后在网上找到资料,发现:访问数据库都是通过客户端JDBC 驱动来完成,用JDBC 来存取数据要和数据的内置编码保持一致,可以通过设置 JDBC URL 来制定,
如 MySQL:url="jdbc:mysql://localhost:3306/DB?useUnicode=true&characterEncoding=utf8"。
有一篇写的很详细的关于java编码格式的文章,下面是原文链接,大家有兴趣的话可以学习一下。
https://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/