解决乱码最好的方法是在项目设计之初,统一所有的字符集,例如页面、request对象以及数据库等等。
一、 几种常见的乱码现象:
1、页面乱码
单纯的页面乱码是很好解决的,只要修改头部适合的字符集即可,如果页面中文显示乱码,你可以把字符集修改为:gb2312或gbk。
2、页面之间传递的参数是乱码
页面之间传递参数出现的乱码,就要解决页面编码和requset的字符集问题,在参数传进传出时重新设置相应的字符集。比如:request.setCharacterEncoding("UTF-8");
3、数据库乱码(下面详细介绍)
二、数据库乱码解决方法(Mysql)
页面和页面传值都没有问题,结果发现存储在数据库中的数据出现了乱码,则问题是出现在数据库的编码问题。
下面我已MySql数据库为例说明解决方法:
如果你安装数据库的时候字符集使用的默认选项:latin1
DOS命令下进入数据库show 一下字符集(命令:show variables like"%char%"; )显示如下:
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
+--------------------------+---------------+
1、修改数据库默认字符集:
打开C:\Program Files\MySQL\MySQL Server 5.0里面的my.ini文件找到这段文字:
引用
# 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=gbk
这时候show 一下字符集(重新启动mysql服务 ,命令:show variables like"%char%"; )显示如下:
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
+--------------------------+---------------+
2、如果你是导入的数据库,需要对my.ini做如下修改找到
引用
[client]
port=3306
[mysql]
default-character-set=latin1
把 default-character-set=latin1改为default-character-set=gbk
引用
# 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]
找到
增加default-character-set=gbk
然后在设置一下你导入的数据库字符集即可:
命令:alter database 你的数据库名 charset = gbk;
重新启动mysql服务,show 一下字符集(,命令:show variables like"%char%"; )显示如下:
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
+--------------------------+---------------+
如果你见到如上内容,数据库字符集问题已解决。
如果你的项目还有字符集问题,那就需要查看一下是否是其他因素导致的乱码了,比如我开篇时提到的问题。
分享到:
相关推荐
解决MySQL数据库乱码问题,以及命令行查表乱码问题
解决knime连接mysql数据库中文乱码
在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法。
MySQL数据库系统中文乱码问题及解决方案.pdf
MySQL数据库乱码-Linux下乱码问题一 乱码问题是很让人抓狂的问题,下面我将记录一下linux下mysql乱码问题的解决方法。 mysql在linux下乱码问题 一、操作 mysql默认字符集是latin1,但是我们大部分程序使用的...
主要针对于Mysql出现的乱码问题的解决方法,很好的解决了这一问题,另外对其产生的原因也会有相应的了解,是个很不错的文档!!
解决Mysql5.0数据库中文乱码解决方案 万能方法
linux运维学习笔记:MySQL数据库中文乱码原理及解决乱码方案
mysql-essential-5.0.45-win32.msi mysql-gui-tools-5.0-r12-win32.msi mysql-connector-java-5.0.4-bin.jar MySql数据库中文乱码解决方法 my.ini
大家在使用PHPmyadmin把mysql数据库导出导入的时候都遇到过中文乱码的问题,尤其是网站迁移的过程中,只有把这个中文乱码的问题解决好了,你才能把mysql数据库玩熟玩好。
遇到了这个问题, 按照一定的顺序解决了, 来这里总结一下, 希望能帮助大家. 咱们从前台到后台的顺序来解决. 1. JSP 这里需要设置一下JSP页面的统一编码格式: 打开Eclipse-window->preferences. 根据...
MySQL乱码解决方案数据库乱码MySQL乱码解决方案数据库乱码
对mysql中文乱码问题,有一个详细的总结,有几种典型的解决办法 很好的文章
如何解决MYSQL数据库中文乱码问题-.docx
hibernate+mysql 中文存入数据库乱码解决方法
mysql数据库中文乱码问题共2页.pdf.zip
MYSQL数据库中文乱码问题.docx
nodejs和C语言插入mysql数据库乱码问题的解决方法.docx
解决Mysql5.0数据库中文乱码三个步骤 万能方法
介绍了本人学习过程中总结出的对mysql数据库操作的几个类,这些类封装了对mysql数据库的基本操作,并解决了乱码问题