`
kankan1218
  • 浏览: 277718 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

MySql 乱码的困惑和解决方法

阅读更多
                       
遇到乱码问题很久了,一直不知道怎么解决,看了网上有很多这方面的文章,看完后似乎帮助也不大,还是一直悬而未决。
今天终于痛下决心,一定要解决一下。
首先在mysqlcc中查看了一下数据库中创建的表的collation是utf8_general_ci
数据库连接字符串已经加上了useUnicode=true&characterEncoding=UTF-8
jsp的头部已经加上charset=UTF-8
但是从数据库中读出的数据仍然是乱码。


于是使用cmd连上mysql,insert和select中文都是正常的。
突然怀疑是不是数据库创建的根本就不是utf8的。于是做了个试验
首先 set NAMES utf8。然后再从表中select数据,发觉数据居然是乱码。

既然数据库有问题,那么就重新建一个utf8的试试。使用下面的命令

CREATE DATABASE db1
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;
use db1;
set NAMES utf8;

重新insert和select中文,却发觉仍然是乱码。实在无法理解。。。。

抱着试试的心理,把NAMES设成了gb2312(set NAMES gb2312;)
居然insert和select中文都是成功的。
set NAMES gb2312下初始话了一下数据库的数据,
启动tomcat,java程序不需要任何修改也再没有乱码的问题了。

至此mysql的乱码问题莫名其妙地得到了解决,但是为什么设置仍然要设成gb2312还是无法理解。
想起一个问题,给日本人做项目的时候,用的是oracle数据库,初始话的sql也是shift-jis的。难道这个地方要设成和本机系统一致的编码?

后来把这个系统移到公司的电脑上跑了一下,居然仍是乱码。考虑到公司电脑的语言选项的高级设置是日语。我创建了一张test表

CREATE TABLE TEST (NAME VARCHAR(20));

然后在

set NAMES sjis

的基础上分别插入一条中文的记录和一条日语的记录,

select出来之后,中文的记录是乱码,日文的记录正常。


至此,初步得出要使用UTF8需要如下几步:

1 创建数据库的时候加上下面的选项: 

DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;


2 数据库连接字符串已经加上了useUnicode=true&characterEncoding=UTF-8
3 jsp的头部已经加上charset=UTF-8

4 通过sql语句直接insert select需要set NAMES [NAMES]

其中[NAMES]为本机的语言选项。中文系统[NAMES]选gb2312, 日文系统选sjis
分享到:
评论

相关推荐

    mysql乱码解决方法

    【MySQL 乱码解决方法】 在使用MySQL数据库与PHP配合开发网站时,有时会遇到乱码问题,这通常是由于字符集设置不一致导致的。以下是一些常用的解决方法: 1. **配置数据库环境**: - 在使用工具如ZendStudio或...

    Mysql运行SQL语句中文乱码问题的解决方法

    ### MySQL运行SQL语句中文乱码问题的解决方法 在MySQL数据库中运行包含中文字符的SQL语句时,经常会遇到中文显示为乱码的问题。这一现象不仅降低了开发效率,还可能导致数据错误。本文将详细介绍如何彻底解决MySQL...

    mysql乱码的解决方法

    ### MySQL乱码问题解决方案 #### 一、理解MySQL乱码问题 在使用MySQL数据库时,乱码问题是开发者经常遇到的问题之一。它不仅影响数据的准确读取与展示,还可能影响到系统的整体用户体验。通常,MySQL乱码问题的...

    MySQL乱码解决方案数据库乱码

    ### MySQL乱码问题详解与解决方案 #### 一、MySQL乱码背景及原因分析 在处理MySQL数据库时,遇到字符集编码不一致导致的数据乱码问题非常常见。这不仅会影响数据的正确显示,还可能导致数据丢失或损坏。根据提供的...

    MySql乱码问题解决方法

    本篇文章将深入探讨MySQL乱码问题的原因,并提供一系列详细的解决方法。 1. **问题原因** - **编码不匹配**:数据库、表、字段的字符集设置与输入数据的编码不一致。 - **传输过程中的编码转换**:数据在传输过程...

    mysql乱码问题解决

    ### MySQL乱码问题解决方案 在处理数据库操作时,字符集编码问题经常会导致数据展示或存储过程中出现乱码现象。MySQL作为广泛使用的开源关系型数据库管理系统之一,在实际应用中也难免会遇到字符集不匹配导致的数据...

    解决mysql乱码问题全解决

    ### 解决MySQL乱码问题全解析 #### 一、引言 ...通过上述方法,大多数情况下可以有效解决MySQL乱码问题。然而,在实际应用过程中还需要根据具体情况灵活调整方案。希望本文能为遇到类似问题的朋友提供帮助。

    MySql乱码问题的解决方法

    ### MySql乱码问题的解决方法 在处理数据库应用时,我们常常会遇到字符集编码的问题,尤其是在使用MySQL数据库时,由于编码设置不当导致的数据乱码现象更是屡见不鲜。本文将详细介绍MySQL乱码问题产生的原因及解决...

    mysql乱码解决问题

    ### MySQL乱码问题解决方案 #### 一、问题背景 在MySQL数据库操作过程中,经常会遇到中文乱码的问题。尤其是在处理简体中文数据时,如果数据库或连接客户端的字符集设置不当,很容易导致显示乱码或者存储错误的...

    jsp+servlet+mysql乱码解决的这天

    jsp+servlet+mysql乱码解决方案 jsp+servlet+mysql乱码解决方案是指在使用jsp+servlet+mysql...jsp+servlet+mysql乱码解决方案是一个非常重要和实用的解决方案,对于jsp+servlet+mysql开发的web应用程序非常有价值。

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

    在C#编程中,与MySQL数据库交互时可能...总之,解决MySQL乱码问题的关键在于统一字符集设置和正确处理编码转换,而封装数据库操作则可以提高代码的复用性和模块化程度。希望这篇文章能帮助你更好地理解和处理这些问题。

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

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

    mysql中文乱码的解决方法

    ### MySQL中文乱码的解决方法 #### 一、问题背景 在使用MySQL的过程中,经常会遇到中文乱码的问题,这不仅影响了数据的正确读取,也会导致用户体验下降。中文乱码的原因主要有以下几点: 1. **Server本身的设定...

    mysql中文乱码问题

    在本文中,我们讨论了 MySQL 中文乱码问题的原因和解决方法。解决这个问题的关键是检查和修改 MySQL 服务器的编码方式,包括 character_set_server 变量的设置和 my.ini 文件中的配置。通过这些方法,我们可以轻松地...

    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

    java插入mysql中文乱码解决

    针对上述原因,我们可以采取以下几种方法来解决中文乱码问题: 1. **确保各环节编码一致** - **Java程序编码**:确保Java程序内部使用的编码为UTF-8,可以在项目启动时通过 `-Dfile.encoding=UTF-8` 参数来设置。...

    彻底解决C# asp.net连接MySQL乱码问题

    ### 彻底解决C# ASP.NET 连接MySQL乱码问题 在开发过程中,尤其是在处理中文数据时,经常遇到的一个问题是数据库连接时出现乱码。本文将详细介绍如何彻底解决使用C# ASP.NET 应用程序连接 MySQL 数据库时出现的乱码...

    mysql乱码问题解决办法

    ### MySQL乱码问题解决办法 在使用MySQL的过程中,经常会出现字符显示乱码的问题,尤其是在处理中文数据时更为常见。本文将详细介绍如何通过多种途径解决MySQL中的乱码问题,包括更改MySQL服务器的字符集设置、调整...

    mac MySQL中文乱码解决办法

    本文将详细介绍如何解决macOS系统下MySQL中文乱码的问题,通过修改配置文件my.cnf来调整MySQL的字符集,确保中文能够正常显示。 ### 解决方案详解 #### 步骤一:定位my.cnf配置文件 首先,需要找到或创建MySQL的...

Global site tag (gtag.js) - Google Analytics