`
茴香豆
  • 浏览: 132228 次
  • 性别: Icon_minigender_2
  • 来自: 桂林
社区版块
存档分类
最新评论

正确设定mysql的字符集编码的探索---需要向数据库中插入中文数据

阅读更多

  一。数据库安装时设定的字符集编码是utf8

       1.当前的字符集编码是:

          Server characterset:    utf8

          Db       characterset:    utf8

          Client  characterset:    Latin1

          Conn.  characterset:    Latin1

      (1)下创建数据库

           插入中文数据时,能够执行操作,但是显示的是乱码

      (2)修改字符集编码,变成:

              Server characterset:    utf8

             Db       characterset:    utf8

             Client  characterset:    gbk

             Conn.  characterset:    gbk

            插入中文数据时,能够执行操作,且数据显示正常

     (3)修改字符集编码,变成:

             Server characterset:    utf8

             Db       characterset:    utf8

             Client  characterset:    utf8

             Conn.  characterset:    utf8

            插入中文数据,操作不能执行,报错如:IIncorrect string value :'\xB9\xA4\Xbe\XDF'for          colunmn'sort_name'at row 1

 二。安装数据库时是Latin1

       1.当前字符集编码:

            Server characterset:    Latin1

             Db       characterset:   Latin1

             Client  characterset:    Latin1

             Conn.  characterset:    Latin1

        (1)下创建数据库

               插入中文数据时,能够执行操作,但是显示的是乱码

         (2)修改字符集编码为utf8

                Server characterset:    Latin1

                Db       characterset:   Latin1

               Client  characterset:    utf8

               Conn.  characterset:    utf8

             插入中文数据,操作不能执行

        (3)修改字符集编码为gbk

                 Server characterset:    Latin1

                Db       characterset:   Latin1

               Client  characterset:    gbk

               Conn.  characterset:    gbk

            插入中文数据,操作不能执行

          (4)在安装数据库时设定字符集编码为utf8,并把当前数据库的字符集编码也设为utf8

                  1)当前字符集编码为utf8:

                        Server characterset:    utf8

                        Db       characterset:   utf8

                        Client  characterset:    utf8

                        Conn.  characterset:    utf8

                      插入中文数据,操作不能执行

                    2)当前字符集编码为gbk:

                        Server characterset:    utf8

                        Db       characterset:   utf8

                        Client  characterset:   gbk

                        Conn.  characterset:    gbk

                      插入中文数据,操作不能执行

                    3)当前字符集编码为Latin1:

                        Server characterset:    utf8

                        Db       characterset:   utf8

                        Client  characterset:    Latin1

                        Conn.  characterset:    Latin1

                      插入中文数据时,能够执行操作,但是显示的是乱码

结论:当在安装mysql数据库时设定的字符集编码是Latin1,不支持中文,在这样的环境下创建的数据库,无论怎样修改字符集都不能正常插入中文数据。并且当把数据库移到安装数据库时就设定的字符集是utf8的数据库环境下,设置字符集为utf8或则gbk时,插入中文数据,操作直接就不能执行。

 

所以,想在数据库中插入中文数据,安装数据库时就必须设定字符集是支持中文的。

 

 

三。在安装数据库时就设定字符集编码为utf8的环境下

     1.当前字符集编码为:

         Server characterset:    utf8

         Db       characterset:    utf8

          Client  characterset:    utf8

          Conn.  characterset:    utf8

      下创建数据库

     (1)插入中文数据,操作不能成功

      (2)修改字符集编码为:

             Server characterset:    utf8

            Db       characterset:    utf8

           Client  characterset:    gbk

           Conn.  characterset:    gbk

         插入中文数据,显示正常

     (3)安装数据库时就设定字符集编码为gbk

           1)当前字符集编码

                Server characterset:    gbk

               Db       characterset:    gbk

              Client  characterset:    gbk

              Conn.  characterset:    gbk

            插入中文数据,操作正常,显示正常

            2)当前字符集编码为utf8

                  Server characterset:    gbk

                 Db       characterset:    utf8

                Client  characterset:    utf8

                Conn.  characterset:    utf8

                插入中文数据,操作不能执行

四。在安装数据库时就设定字符集编码为gbk的环境下

     1.当前 字符集编码是:

              Server characterset:    gbk

               Db       characterset:    gbk

              Client  characterset:    gbk

              Conn.  characterset:    gbk

 

      下创建数据

            (1)       插入中文数据,操作能执行,并能正常显示

            (2)       当前字符集编码为utf8

                       Server characterset:    gbk

                      Db       characterset:    gbk

                     Client  characterset:    utf8

                    Conn.  characterset:    utf8

                插入中文数据,操作不能执行

 

 结论:要想能向数据库正常插入中文,必须满足以下条件:

<!--[if !supportLists]-->(1)       <!--[endif]-->安装数据库时,要把字符集设定为能支持中文的gbk或则utf8

<!--[if !supportLists]-->(2)       <!--[endif]-->把数据库的Client CharactersetConn. Characterset的字符集都设定为gbk

其中,设定字符集编码的指令为:set names ‘charactername’

查看字符集编码的指令为:status

         至于为什么吗要这样做,我也讲不出原因!

 

    按理说,只要character_set_client、character_set_results、character_set_connection的编码字符集的设置一样就行了,可为什么用SET NAMES 'charset_name'把他们设置为utf8就不能插入中文,而设置为gbk就能插入中文?

    对于这个问题,我实在 搞不清楚,得去查些资料才行!

 

 

 

分享到:
评论

相关推荐

    设定mysql字符集解决终端乱码

    在处理数据库操作时,经常遇到的一个问题是字符集编码不一致导致的数据乱码问题。对于 MySQL 数据库来说,合理设置字符集可以有效避免此类问题的发生。本文将详细介绍如何通过设定 MySQL 的字符集来解决终端乱码的...

    Mysql字符集

    ### MySQL字符集详解 在MySQL数据库管理中,正确地理解和设置字符集对于数据的准确存储和检索至关重要。本文将深入探讨MySQL字符集的基础概念、设置方法以及如何在实际操作中进行字符集的转换。 #### 一、理解...

    在mysql数据库中传入中文字符,并实现正常显示.rar

    要确保中文字符能够正确存储和显示,需要关注几个关键点:字符集设置、数据库表结构、连接参数以及数据插入方法。以下将详细介绍这些步骤。 1. **字符集设置** - **服务器级设置**:在MySQL配置文件(如`my.cnf`)...

    C# mysql 插入数据,中文乱码的解决方法

    然而,这种方法可能会对整个数据库连接的后续操作产生影响,因此在插入完中文数据后,别忘了恢复到原来的字符集,以避免其他非中文数据的乱码问题。 **方法二:在连接字符串中指定字符集** 更常见且推荐的做法是在...

    JSP MySQL插入数据时出现中文乱码问题的解决方法.docx

    在 JSP 应用程序中,可以使用 JDBC 连接 MySQL 数据库时,需要指定字符集编码,以避免乱码问题。在连接字符串中添加 useUnicode=true&characterEncoding=GBK 可以指定字符集编码为 GBK。 解决 JSP MySQL 插入数据时...

    mysql 插入中文读取中文无乱码 2

    在MySQL数据库中处理中文字符时,可能会遇到插入和读取中文数据出现乱码的问题。这个问题通常是由于字符编码不一致导致的。以下是一些关键知识点,帮助你理解和解决MySQL中文乱码问题。 1. **字符集与编码** - **...

    MySQL数据库 中文设置

    首先,我们需要理解MySQL字符集的概念。字符集(Character Set)是数据库用来表示文本的一组符号和规则,它定义了如何存储和处理字符。对于中文环境,最常用的字符集是`utf8`或`utf8mb4`,它们支持广泛的中文字符。 ...

    Mysql中解决中文无法插入的解决方案

    在MySQL数据库中,遇到中文无法插入的问题通常是由于字符集设置不正确导致的。这涉及到数据库、表以及字段的字符集配置。以下是一些详细的解决步骤和相关知识点: 1. **字符集基础**: - 字符集(Character Set)...

    MYSQL insert 中文报错 .pdf

    当向MySQL数据库中插入一条带有中文的数据时报错,主要原因是客户端与服务器之间的字符集设置不一致所导致的。通过执行`SHOW VARIABLES LIKE '%char%'`命令,可以查看当前数据库的相关编码设置。 根据命令结果,...

    mysql数据库中文乱码问题共2页.pdf.zip

    4. 表结构中的某个字段设定的字符集不支持中文,导致插入中文数据时出现问题。 解决MySQL中文乱码问题的策略如下: 1. 设置全局字符集:在MySQL配置文件(my.cnf)中,可以设置全局默认字符集为`utf8`,重启MySQL...

    数据库编程之编码转换实例--乱码分析

    3. SQL语句:在插入或查询数据时,SQL语句中涉及的字符串需要按照正确的编码进行处理。比如,使用PreparedStatement的setString方法时,需要确保字符串已经转换为数据库支持的编码。 4. 文件读写:如果数据库的数据...

    Struts如何解决中文添加到数据库

    - 数据库层面:确保数据库服务器配置的字符集支持中文,例如MySQL可以设置`character_set_server=utf8`。 - 连接URL编码:在建立数据库连接时,URL中包含`useUnicode=true&characterEncoding=UTF-8`参数,以指定...

    JSP MySQL插入数据时出现中文乱码问题的解决方法

    当在使用JSP页面向MySQL数据库插入中文数据时,经常会出现乱码问题。这个问题主要是由于字符编码不一致导致的,因为JSP页面和数据库对字符集的处理方式有所不同,如果处理不当,就会导致中文乱码。 首先,要了解...

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

    MySQL数据库、数据库表以及字段都有各自的字符集设定,这些设定需要保持一致。例如,如果你的数据库服务器使用的是UTF-8编码,那么在创建表或者插入数据时,也需要确保数据是以UTF-8格式存储的。在C#连接字符串中,...

    Mysql 中文乱码 最简单的解决办法

    在MySQL数据库中遇到中文乱码问题,这通常是由于字符集设置不正确导致的。这个问题的解决方案涉及多个层面,包括MySQL服务器配置、数据库、表以及字段的字符集设定。以下是最简单且有效的解决方法: 首先,我们需要...

    MySQL数据库跨越式升级中乱码问题分析及解决.pdf

    在MySQL中,字符集设置包括服务器级、数据库级、表级甚至字段级,这些级别的字符集设置如果不一致,尤其是在从不支持中文字符的字符集升级到支持的字符集时,就可能导致乱码。 首先,GB2312是中国的一个简体中文...

    深入UTF8字符编码.pdf

    在浏览网页时,IE会优先尝试根据网页头部的标签中声明的字符集编码进行解码。若网页没有声明编码,IE则会退回到系统默认编码,通常是GBK,进行解码。 ### 文本工具的字符编码 文本编辑器,如记事本、写字板、Word...

    mysql.rar_ mysql_MYSQL

    - 使用`INSERT INTO`语句插入包含中文的数据,确保客户端与服务器的字符集一致,例如:`INSERT INTO table_name (column1) VALUES ('中文数据');` - 如果使用编程接口,如C++,需要确保字符串是以正确的编码(如...

    MySQL存数据时乱码解决

    在MySQL数据库中遇到乱码问题通常涉及到字符编码设置不一致或不正确的情况。当数据存入数据库时出现乱码,这可能是由于在数据传输、存储或显示的过程中,字符集配置不匹配导致的。下面我们将详细探讨如何解决MySQL中...

Global site tag (gtag.js) - Google Analytics