在网上看过很多解决mysql乱码的帖子,可是写的不是罗里罗嗦就过于复杂。其实乱码没那么复杂,是网上的大侠们想多了。我研究过一段日子,总结出一套自己的解决方案,如果你还没解决乱码就用我的方法试一下。我的方案不是最好的,却是最简单易懂的。不信你试试。
在使用MYSQL时,插入中文字符,经常会出现乱码,中文全被用?代替。出现这种情况的原因,多是字符集不匹配造成的。
在MYSQL中,如果使用缺省的字符集,在建库、建表时,默认使用的是latin1字符集,为ISO 8859-1西欧字符集。插入中文字符时,与之不匹配,就会出现乱码。
要解决此问题,就必须手动将数据库Server和Client的字符编码改为gb2312。配置方法如下:
打开MYSQL安装目录下的my.ini文件,找到如下段落:
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]
port=3306
[mysql]
default-character-set=latin1
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/MySQL/MySQL Server 5.0/"
#Path to the database root
datadir="D:/MySQL/MySQL Server 5.0/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=latin1
将其中的default-character-set=latin1
改为default-character-set=gb2312( 两个都改)
,然后重启MYSQL(特别注意:以前建立的数据库要重建,因为以前存储的数据编码方式为ISO-8859-1),运行MySQL Command Line Client:
输入show variables like 'character_set_%';可以查看数据库的字符编码如下:
mysql> show variables like 'character_set_%';
+--------------------------+-----------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------+
| character_set_client | gb2312 |
| character_set_connection | gb2312 |
| character_set_database | gb2312 |
| character_set_filesystem | binary |
| character_set_results | gb2312 |
| character_set_server | gb2312 |
| character_set_system | utf8 |
| character_sets_dir | D:\MySQL\MySQL Server 5.0\share\charsets|
+--------------------------+-----------------------------------------+
然后,在程序中将连接数据库的URL改为jdbc:mysql://localhost:3306/databasename?useUnicode=true&
characterEncoding=gb2312 就可以了!(&;是代表xml中的&)
还需要注意到是:1.你的JSP页面一定别忘了加上编码方式<%@ page pageEncoding="GB2312"%>。
2.把以前写过滤方法如:getbytes(iso-8859-1)全去掉
相关推荐
使用java的SSH+Mysql时出现插入数据乱码还有查询也出现乱码问题
Hibernate_MySQL中文乱码问题.docHibernate_MySQL中文乱码问题.doc
解决hibernate与MySql存储中文时出现乱码问题
Struts Hibernate MyEclipse Tomcat MySQL JSP 乱码 编码出错 内码设定
hibernate+mysql 中文存入数据库乱码解决方法
如果持久化的类中有包括了汉字的String对象,那么对应到数据库中汉字的部分就会是乱码。这主要是由于MySQL数据表的字符集与我们当前使用的本地字符集不相同造成的
学生管理系统(Struts Hibernate mysql)无乱码问题。内附数据库文件,直接导入即可用。lib分成两个包lib1,lib2单独下载.把两个包一起搞到lib下即可。 这个是lib1包。你还要下载 学生管理系统(Struts Hibernate ...
学生管理系统(Struts Hibernate mysql)无乱码问题。内附数据库文件,直接导入即可用。lib分成两个包lib1,lib2单独下载.把两个包一起搞到lib下即可。 这个是lib2包。你还要下载 学生管理系统(Struts Hibernate ...
java+mysql 乱码 SSH hibernate设置+mysql设置
打印sql语句还是中文 到数据库发现乱码,本以为是hibernate搞的,结果证明不是hibernate 自己也是网上解决办法 自己的问题解决了 希望能帮助其他人 运行命令:SHOW VARIABLES LIKE 'character_set_%'; 结果如下 '...
linux 系统下mysql中文乱码问题的解决方案 1、在命令行中输入alter database 数据库名 default character set utf8; 设置字符编码方式 2、 set names utf8; 设置显示方式 3 、jdbc中url的路径后跟上?useUnicode=true...
显示界面,JSP 2.0 JAVA容器:Tomcat 5.X MVC构架:Struts 1.2 ORM工具:Hibernate 3 数据库:MySQL 5.0 编译IDE:MyEclipse 5.0
学生管理系统(Struts Hibernate mysql)无乱码问题。内附数据库文件,直接导入即可用。lib分成两个包lib1,lib2单独下载.把两个包一起搞到lib下即可。我看到很多朋友只下载lib包,这个才是源码包。
不会让大家后悔,里面介绍了连接池,dbutils的应用,struts-hibernate-sprint结合开发的实例详解,用的是sql server数据库,也可以改为mysql oracle只要改变数据库连接驱动和url即可。
初次没习hibernate,其中遇到问题在网上找的答案与大家共同分享!
开发过程中总避免不了遇到恶心的乱码,或者由乱码引发的一系列问题。... 交代背景: 要实现的功能很简单,用dom4J读取XML文件然后借助Spring以及Hibernate将数据写入到MySql数据库(多表)中,当然整个过程是由Spring
Struts2+Spring2+Hibernate3整合的例子,含mysql数据库,解决了关于utf-8中文乱码问题
《Struts中文帮助文档》的相关内容相关讨论struts+hibernate+mysql中文乱码解决struts
如果上面5步都没问题,你就不存在中文乱码问题。 ====================================================== 数据库使用的是MySQL,其版本为5.0.45 版本。 数据库的用户名及密码均为root。 使用的时候,请参考附件...