一。数据库安装时设定的字符集编码是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
Characterset和Conn. 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字符集的基础概念、设置方法以及如何在实际操作中进行字符集的转换。 #### 一、理解...
要确保中文字符能够正确存储和显示,需要关注几个关键点:字符集设置、数据库表结构、连接参数以及数据插入方法。以下将详细介绍这些步骤。 1. **字符集设置** - **服务器级设置**:在MySQL配置文件(如`my.cnf`)...
然而,这种方法可能会对整个数据库连接的后续操作产生影响,因此在插入完中文数据后,别忘了恢复到原来的字符集,以避免其他非中文数据的乱码问题。 **方法二:在连接字符串中指定字符集** 更常见且推荐的做法是在...
在 JSP 应用程序中,可以使用 JDBC 连接 MySQL 数据库时,需要指定字符集编码,以避免乱码问题。在连接字符串中添加 useUnicode=true&characterEncoding=GBK 可以指定字符集编码为 GBK。 解决 JSP MySQL 插入数据时...
在MySQL数据库中处理中文字符时,可能会遇到插入和读取中文数据出现乱码的问题。这个问题通常是由于字符编码不一致导致的。以下是一些关键知识点,帮助你理解和解决MySQL中文乱码问题。 1. **字符集与编码** - **...
首先,我们需要理解MySQL字符集的概念。字符集(Character Set)是数据库用来表示文本的一组符号和规则,它定义了如何存储和处理字符。对于中文环境,最常用的字符集是`utf8`或`utf8mb4`,它们支持广泛的中文字符。 ...
在MySQL数据库中,遇到中文无法插入的问题通常是由于字符集设置不正确导致的。这涉及到数据库、表以及字段的字符集配置。以下是一些详细的解决步骤和相关知识点: 1. **字符集基础**: - 字符集(Character Set)...
当向MySQL数据库中插入一条带有中文的数据时报错,主要原因是客户端与服务器之间的字符集设置不一致所导致的。通过执行`SHOW VARIABLES LIKE '%char%'`命令,可以查看当前数据库的相关编码设置。 根据命令结果,...
4. 表结构中的某个字段设定的字符集不支持中文,导致插入中文数据时出现问题。 解决MySQL中文乱码问题的策略如下: 1. 设置全局字符集:在MySQL配置文件(my.cnf)中,可以设置全局默认字符集为`utf8`,重启MySQL...
3. SQL语句:在插入或查询数据时,SQL语句中涉及的字符串需要按照正确的编码进行处理。比如,使用PreparedStatement的setString方法时,需要确保字符串已经转换为数据库支持的编码。 4. 文件读写:如果数据库的数据...
- 数据库层面:确保数据库服务器配置的字符集支持中文,例如MySQL可以设置`character_set_server=utf8`。 - 连接URL编码:在建立数据库连接时,URL中包含`useUnicode=true&characterEncoding=UTF-8`参数,以指定...
当在使用JSP页面向MySQL数据库插入中文数据时,经常会出现乱码问题。这个问题主要是由于字符编码不一致导致的,因为JSP页面和数据库对字符集的处理方式有所不同,如果处理不当,就会导致中文乱码。 首先,要了解...
MySQL数据库、数据库表以及字段都有各自的字符集设定,这些设定需要保持一致。例如,如果你的数据库服务器使用的是UTF-8编码,那么在创建表或者插入数据时,也需要确保数据是以UTF-8格式存储的。在C#连接字符串中,...
在MySQL数据库中遇到中文乱码问题,这通常是由于字符集设置不正确导致的。这个问题的解决方案涉及多个层面,包括MySQL服务器配置、数据库、表以及字段的字符集设定。以下是最简单且有效的解决方法: 首先,我们需要...
在MySQL中,字符集设置包括服务器级、数据库级、表级甚至字段级,这些级别的字符集设置如果不一致,尤其是在从不支持中文字符的字符集升级到支持的字符集时,就可能导致乱码。 首先,GB2312是中国的一个简体中文...
在浏览网页时,IE会优先尝试根据网页头部的标签中声明的字符集编码进行解码。若网页没有声明编码,IE则会退回到系统默认编码,通常是GBK,进行解码。 ### 文本工具的字符编码 文本编辑器,如记事本、写字板、Word...
- 使用`INSERT INTO`语句插入包含中文的数据,确保客户端与服务器的字符集一致,例如:`INSERT INTO table_name (column1) VALUES ('中文数据');` - 如果使用编程接口,如C++,需要确保字符串是以正确的编码(如...
在MySQL数据库中遇到乱码问题通常涉及到字符编码设置不一致或不正确的情况。当数据存入数据库时出现乱码,这可能是由于在数据传输、存储或显示的过程中,字符集配置不匹配导致的。下面我们将详细探讨如何解决MySQL中...