`
zhuixue
  • 浏览: 174175 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

MySql数据库中文乱码解决方法

阅读更多

解决乱码最好的方法是在项目设计之初,统一所有的字符集,例如页面、request对象以及数据库等等。

一、 几种常见的乱码现象:
1、页面乱码
    单纯的页面乱码是很好解决的,只要修改头部适合的字符集即可,如果页面中文显示乱码,你可以把字符集修改为:gb2312或gbk。

2、页面之间传递的参数是乱码
   页面之间传递参数出现的乱码,就要解决页面编码和requset的字符集问题,在参数传进传出时重新设置相应的字符集。比如:request.setCharacterEncoding("UTF-8");

3、数据库乱码(下面详细介绍)

二、数据库乱码解决方法(Mysql)

   页面和页面传值都没有问题,结果发现存储在数据库中的数据出现了乱码,则问题是出现在数据库的编码问题。
   下面我已MySql数据库为例说明解决方法:

    如果你安装数据库的时候字符集使用的默认选项:latin1
    DOS命令下进入数据库show 一下字符集(命令:show variables like"%char%"; )显示如下:

Java代码 复制代码
  1. +--------------------------+---------------+   
  2. | Variable_name            | Value         |   
  3. +--------------------------+---------------+   
  4. | character_set_client     | latin1        |   
  5. | character_set_connection | latin1        |   
  6. | character_set_database   | latin1        |   
  7. | character_set_filesystem | binary        |   
  8. | character_set_results    | latin1        |   
  9. | character_set_server     | latin1        |   
  10. | character_set_system     | utf8          |   
  11. +--------------------------+---------------+  
+--------------------------+---------------+
| 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%"; )显示如下:

Java代码 复制代码
  1. +--------------------------+---------------+   
  2. | Variable_name            | Value         |   
  3. +--------------------------+---------------+   
  4. | character_set_client     | latin1        |   
  5. | character_set_connection | latin1        |   
  6. | character_set_database   | gbk           |   
  7. | character_set_filesystem | binary        |   
  8. | character_set_results    | latin1        |   
  9. | character_set_server     | latin1        |   
  10. | character_set_system     | utf8          |   
  11. +--------------------------+---------------+  
+--------------------------+---------------+
| 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%"; )显示如下:

Java代码 复制代码
  1. +--------------------------+---------------+   
  2. | Variable_name            | Value         |   
  3. +--------------------------+---------------+   
  4. | character_set_client     | gbk           |   
  5. | character_set_connection | gbk           |   
  6. | character_set_database   | gbk           |   
  7. | character_set_filesystem | binary        |   
  8. | character_set_results    | gbk           |   
  9. | character_set_server     | gbk           |   
  10. | character_set_system     | utf8          |   
  11. +--------------------------+---------------+  
+--------------------------+---------------+
| 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数据库系统中文乱码问题及解决方案.pdf

    MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在...

    在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法

    ### 在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法 #### 背景介绍 在软件开发过程中,特别是涉及到多语言环境的应用程序开发时,字符编码问题常常成为开发者需要解决的一个重要问题。对于使用...

    MySql数据库导入乱码

    MySql 数据库导入乱码解决方案 在使用 PHPmyadmin 导出 MySql 数据库时,经常会遇到中文乱码的...通过遵循这些步骤,我们可以轻松地解决 MySql 数据库导入中文乱码的问题,并确保我们的数据库数据正确地导出和导入。

    MYSQL数据库中文乱码问题.docx

    MYSQL数据库中文乱码问题解决方案 MYSQL数据库中文乱码问题是许多开发者和数据库管理员经常遇到的问题,尤其是在导入和导出数据时。下面总结了一些常见的解决方案和技巧,以供参考。 方法一:使用正确的命令 在...

    如何解决MYSQL数据库中文乱码问题-.docx

    解决MYSQL数据库中文乱码问题 在实际的开发和应用中,MYSQL数据库中文乱码问题是一个常见的问题,这个问题的出现往往是由于数据库字符集的不正确设置所引起的。解决MYSQL数据库中文乱码问题需要从多方面入手,包括...

    mysql5.5及解决乱码方法

    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

    解决JSP到MySQL数据库中文乱码问题

    遇到了这个问题, 按照一定的顺序解决了, 来这里总结一下, 希望能帮助大家.  咱们从前台到后台的顺序来解决.  1. JSP  这里需要设置一下JSP页面的统一编码格式:  打开Eclipse-window->preferences. 根据...

    MySQL数据库—乱码总结

    ### MySQL数据库乱码问题解析与解决方案 #### 一、引言 在使用MySQL数据库的过程中,字符集设置不当可能会导致数据存储或查询时出现乱码问题。本文将针对MySQL数据库中的乱码现象进行深入分析,并提供相应的解决...

    c#解决mysql乱码问题的解决及mysql数据库操作的封装

    本篇文章将详细介绍如何解决MySQL数据库中的乱码问题,并探讨如何通过C#进行数据库操作的封装,提高代码的可重用性和效率。 首先,MySQL乱码问题的根源通常在于字符集设置。MySQL数据库、数据库表以及字段都有各自...

    ubuntu mysql中中文乱码问题.docx

    部分内容显示了 MySQL 数据库中中文乱码问题的解决方案。首先,需要检查 MySQL 数据库的字符编码设置。可使用 SHOW VARIABLES LIKE '%char%' 命令来查看当前的字符编码设置。然后,需要将字符编码设置为 utf8,以...

    解决连接mysql中文显示乱码

    以下是对如何解决连接MySQL时中文显示乱码问题的详细解析。 ### 解决中文显示乱码的关键知识点 #### 1. **理解字符集和编码** 字符集(Character Set)是指用于表示文字的一系列符号集合,而编码(Encoding)则是将...

    mysql 数据库乱码处理

    下面我们将详细讨论 MySQL 数据库乱码处理的方法。 1. 选择正确的字符集 在创建数据库时,选择正确的字符集是非常重要的。UTF-8 是目前最适合的字符集,能够很好地支持多种语言的字符。使用 UTF-8 字符集可以使得...

    解决Mysql5.0数据库中文乱码三个步骤

    解决Mysql5.0数据库中文乱码三个步骤 万能方法

    数据库乱码解决方法

    解决Oracle数据库乱码问题的步骤如下: 1. **确定字符集**:检查数据库服务器的字符集设置,可以使用SQL查询`SELECT value FROM v$parameter WHERE name = 'nls_characterset';`来获取。同时,确认应用程序和客户端...

Global site tag (gtag.js) - Google Analytics