装了一个mysql4.1以后,竟然发现中文问题了。哎,已经好久没有被中文问题困扰了,没想到今天却被这个问题折腾了一个多小时。
<!----><o:p> </o:p>
首先有必要说明的是,你的驱动需要更新到 mysql-connector-java-<!----><st1:chsdate month="12" islunardate="False" day="30" year="1899" w:st="on" isrocdate="False">3.0.16</st1:chsdate> 或以上版本,否则不支持mysql4.1。
JDBC URL:"jdbc:mysql://jf:3306/learning?useUnicode=true&characterEncoding=GBK" 在4.0版本解释中文没有任何问题,但是在4.1中就不起任何作用,中文依旧乱码。<o:p></o:p>
<o:p> </o:p>
刚开始以为gbk不支持,那么就更换成utf-8测试一下,结果还是不行。查阅参阅了http://dev.mysql.com/doc/connector/j/en/index.html 文档,发现白费了功夫:<o:p></o:p>
Using the UTF-8 Character Encoding - Prior to MySQL server version 4.1, the UTF-8 character encoding was not supported by the server, however the JDBC driver could use it, allowing storage of multiple character sets in latin1 tables on the server.<o:p></o:p>
查阅 http://dev.mysql.com/doc/connector/j/en/cj-character-sets.html 文档,发现latin1默认是 iso8859_1的字符编码。<o:p></o:p>
但是从数据库检索出来后用转码,从iso8859_1转为GBK也是无效。<o:p></o:p>
<o:p> </o:p>
后来搜索了在网上搜索了一下,发现有介绍修改 mysql的 my.ini文件,将my.ini 中的 [mysqld] 里添加一行:default-character-set=gbk,然后重起mysql。这个方法因为设计到需要重新启动mysql,没有测试。不知道是否可行。<o:p></o:p>
<o:p> </o:p>
但是发现用ems mysql创建表的sql中多了default charset属性。默认为latin1。<o:p></o:p>
CREATE TABLE `tmp_4` (<o:p></o:p> `id` tinyint(4) NOT NULL auto_increment,<o:p></o:p> `a` char(1) default NULL,<o:p></o:p> PRIMARY KEY (`id`),<o:p></o:p> UNIQUE KEY `id` (`id`)<o:p></o:p> ) ENGINE=MyISAM DEFAULT CHARSET=latin1<o:p></o:p> |
<o:p> </o:p>
于是将sql更改为 DEFAULT CHARSET=gbk ,重新创建了表。中文问题就这么解决了。不过唯一不好的就是,在mysql中存储的是???之类的字符,无法通过控制台进行查看修改。这个问题目前我还没有找到好的方式,不知道以上修改my.ini的方式是否可行,大家可以测试一下。<o:p></o:p>
分享到:
相关推荐
1. **字符集支持**:MySQL v4.1显著提升了对多语言字符集的支持,特别是中文环境。这包括Unicode(如UTF-8)的全面支持,允许用户存储和检索各种语言的数据,这对于全球化应用非常重要。 2. **查询缓存改进**:此...
MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用中访问MySQL数据库。本资源提供的"mysql-...
MySQL Connector/J是MySQL数据库官方开发的一款Java数据库连接器,它实现了Java Database Connectivity (JDBC) API,使得Java应用程序能够与MySQL数据库进行交互。在本文中,我们将深入探讨`mysql-connector-java-...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java`则是MySQL官方提供的Java数据库连接器,用于在Java应用程序中与MySQL服务器进行通信。在这个话题中,我们将深入探讨`mysql-connector-...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-5.1.40.tar`是一个针对Java开发者的MySQL驱动程序包。这个压缩包包含的是MySQL Connector/J,它是MySQL数据库与Java应用程序之间的桥梁...
在本篇文章中,我们将深入探讨如何有效地解决Java应用程序在连接MySQL数据库时可能遇到的各种问题。这一过程对于确保数据访问层的稳定性和效率至关重要。通过以下详细的步骤和解释,您将能够迅速定位并解决连接过程...
《MySQL 4.1.0 中文手册》是针对MySQL 4.1版本的手册,该版本在2003年发布,是MySQL发展的一个重要里程碑。它引入了诸多新特性,如存储过程、触发器、视图以及改进的查询优化器。手册详细阐述了如何安装和配置MySQL ...
MySQL Connector/J就是MySQL官方发布的JDBC驱动,它符合JDBC 4.1规范,支持Java SE 6及以上版本。 使用MySQL Connector/J的过程通常包括以下几个步骤: 1. **下载和引入驱动**:首先,你需要从MySQL官方网站或通过...
MySQL Connector/J 5.1.34 是 MySQL 官方提供的用于 Java 应用程序连接 MySQL 数据库的驱动程序。这个版本的驱动是基于 JDBC(Java Database Connectivity)接口的,使得开发者可以使用纯 Java 代码与 MySQL 数据库...
本实例整合了Spring 4.1、Struts 2.3和Hibernate 4.3,以及MySQL数据库的5.1驱动,为初学者提供了一个实践平台,便于理解这些框架如何协同工作。 首先,Spring框架是一个全面的后端应用程序管理工具,它提供了依赖...
mysql 的 java 连接库 解压缩mysql-connector-java-5.1.30.zip 将要使用的是mysql-connector-java-5.1.30-bin-g.jar和mysql-connector-java-5.1.30-bin.jar 配置 在C:\Program Files\Java目录下建立mysqlforjdbc...
MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,允许Java开发者在Java应用中访问和操作MySQL数据库。标题中的"mysql-connector-java-...
MySQL Connector/J 5.1.47 是 MySQL 数据库与 Java 应用程序之间的桥梁,它是一个实现了 Java Database Connectivity (JDBC) API 的驱动程序,允许 Java 开发者通过编写 Java 代码来访问和操作 MySQL 数据库。...
在Ubuntu 14.04环境下,如果上述步骤未能解决问题,可能需要调整MySQL数据库的全局字符集和数据库、表以及字段的字符集设置。确保MySQL服务器配置文件`/etc/mysql/my.cnf`中的`[mysqld]`部分包含以下行: ```ini ...
MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在MySQL数据库上执行CRUD(创建、读取、更新、删除)操作...
总之,解决MySQL中文乱码问题的关键在于确保所有环节的字符集设置一致且兼容中文。从数据库、表、连接到客户端工具,都需要仔细检查和调整,以确保正确处理中文字符。如果以上方法无效,可能需要检查更深层次的系统...
本书为各个层次的、没有时间和精力来从头解决mysql问题的用户提供了大量简练、精辟的代码段和可用的示例,每节都阐述了代码应该如何工作及原因所在。本书在目前仍然广为流行的mysql 4.1的基础上加入了mysql 5.0的...