`
LWenna2011
  • 浏览: 8427 次
  • 性别: Icon_minigender_2
  • 来自: 湛江
最近访客 更多访客>>
社区版块
存档分类
最新评论

mysql数据库与字符编码

阅读更多

使用mysql数据库,中文乱码,在网上搜索了资料,修改了my.ini文件:default-character-set=utf8,创建数据库、表、

 

字段的编码都为utf8;SHOW VARIABLES LIKE 'character%':

 

mysql jietu

 

 

命令行下插入中文数据,报错。通过mysql GUI插入中文数据,而查询出来的结果乱码;不知道为什么!

 

既然utf8乱码了,就 set nams gbk; set character_set_database=gbk;

 

 

dd

 

中文插入和查询正确。

 

 

下面是几个变量的含义:

 

character_set_client:客户端字符集;

character_set_connection:客户端与服务器连接采用的字符集;

character_set_results:SELECT查询返回数据的字符集;

character_set_database:数据库采用的字符集;

 

character_set_client, character_set_connection 这两个变量用于保证与character_set_database编码的一致,而character_set_results则用于保证SELECT返回的结果与程序的编码一致。

 

Mysql字符集处理流程是这样的:

1、发送请求

(1)客户端发送请求到服务区端。

(2)服务器端把请求的数据从客户端字符集(character_set_client)转成服务器连接字符集(character_set_connect)转位存取区域(table,column)的字符集,然后在存取或查询

2、返回请求

(1)服务器将存储区域(table,column)的字符集转换成服务器连接字符集(character_set_connect)

(2)将服务器连接字符集(character_set_connect)转换成结果字符集(character_set_results),再发送到客户端。

 

所以:

 

1、一般情况下当上面几个变量采用一致的字符集,就不会出现乱码;

 

2、要保证发送的数据与数据库的字符集一致,即 character_set_client,character_set_connection 与character_set_database 一致。

 

3、要保证数据库中存储的数据与数据库编码一致,即数据的编码(table、column)与character_set_database一致。

 

4、要保证 SELECT 的返回与程序的编码一致,即 character_set_results 与程序(PHP、Java等)编码一致。

 

5、要保证程序编码与浏览器编码一致,即程序编码与 一致。

 

 

按照这样的规则的话,那么用utf8应该是没错的,但是却出错???

 

事实上这样设置的话只在控制台乱码,从数据库中读出后显示在页面上是没有错的。

 

:以上资料大多来自 http://www.oklinux.cn/html/sql/mysql/20090227/67808.html,记录为学习笔记之用。


 

分享到:
评论

相关推荐

    更改MySql数据库的默认编码格式

    客户端工具的编码设置与数据库编码相同。这样,可以用客户端工具直接写入数据,不会产生乱码。例如,我们可以在 MySQL 客户端工具中设置编码为 gb2312。 三、Web.config 中设置连接字符串中的编码 在 ASP.NET 应用...

    Unity3D教程:修改mysql字符编码成为UTF82

    本教程将介绍如何解决Unity3D中与MySQL数据库连接时的字符编码问题,确保数据能够正确地以UTF-8格式存储和读取。 首先,我们遇到的问题是即使设置表的默认字符集为UTF8,并且在发送查询时使用UTF-8编码,仍然会出现...

    MySQL数据库技术与项目应用教程教案.pdf

    字符集是数据库中用于数据存储和检索的字符编码规则,设置合适的字符集对于多语言数据处理至关重要。 **知识点四:项目应用** 本教案强调理论与实践相结合,设计了多个项目场景来加深学生对MySQL技术的理解和应用...

    教程:修改mysql字符编码成为UTF8.docx

    MySQL 数据库的字符编码问题一直是开发者们头疼的问题,尤其是在多语言环境下。如果您的 MySQL 数据库的字符编码不是 UTF8,可能会导致数据乱码、无法读取等问题。今天,我们将教您如何将 MySQL 字符编码修改为 UTF8...

    Mysql字符集编码详解

    Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何解决Mysql数据库乱码问题...

    MySQL数据库系统中文乱码问题及解决方案.pdf

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

    《MySQL数据库开发》期末复习题

    " MySQL数据库开发期末复习题" 本文旨在对 MySQL 数据库开发期末复习题的知识点进行总结和解释。 关系数据库约束 填空题 1 所示,关系数据库中行之间的关系是通过约束来实现的。约束是一种机制,用于确保数据的...

    mysql数据库互相转换及同步工具-MySQL_MySQL字符集互转

    3. **MySQL数据库同步**:数据库同步是为了保持多个数据库实例间的数据一致性,这在分布式系统、灾备恢复、多数据中心部署等场景下尤为重要。MySQL提供了如Replication、Federated Engine等技术实现数据同步。 4. *...

    ubuntu mysql中中文乱码问题.docx

    Ubuntu MySQL 中文乱码问题解决方案 在 Ubuntu 系统中,MySQL 数据库...* MySQL 数据库字符编码设置详解 * Ubuntu 系统中 MySQL 数据库安装和配置 * Java 语言中 MySQL 数据库的应用和集成 * UTF-8 字符编码标准详解

    MySQL数据库字符集的问题研究.pdf

    ### MySQL数据库字符集的问题研究 #### 一、MySQL字符集概述 MySQL数据库是瑞典MySQL AB公司开发的一款小型关系型数据库管理系统,因其速度快、易用性好、支持SQL、网络支持性好、可移植性好及费用低廉等特点,在...

    MYSQL修改字符集默认问题

    在MySQL数据库管理与维护的过程中,修改字符集是一个常见的需求,特别是在需要处理多语言或特定编码格式的情况下。本文将详细介绍如何解决“MySQL修改字符集默认问题”,包括修改步骤、注意事项以及可能遇到的问题...

    MySQL数据库驱动及连接字符串

    MySQL驱动是编程语言与MySQL数据库之间沟通的桥梁,它允许你的应用程序执行SQL查询、管理数据等操作。不同的编程语言有不同的MySQL驱动,例如Java中的JDBC驱动(Java Database Connectivity),Python中的pymysql或...

    mysql批量修改字符编码

    mysql批量修改字符编码,可以把整个数据库的所有表的charset统一设置为utf-8的。

    mysql数据库支持emoji表情实例

    2. **字符集设置**:为了正确存储和检索emoji,你需要确保MySQL数据库的字符集设置为`utf8mb4`。`utf8mb4`是UTF-8的一个超集,它支持四字节的Unicode字符,而普通的`utf8`仅支持三字节的字符,不足以涵盖所有的emoji...

    MySQL数据库连接语句

    各参数含义与上述相同,`charset`用于指定字符编码。 在实际应用中,你还需要考虑一些额外因素,例如设置超时时间、使用SSL连接、指定连接池等。例如,增加`Connection Timeout`参数可以控制连接尝试的时间,如: ...

    MySQL数据库操作显示数据库创建数据库删除数据库查看数据库的字符集显示表创建表表选项删除。。。.pdf

    MySQL数据库是广泛应用于网站开发和数据管理的重要工具,它的操作涵盖了数据库的创建、查询、删除以及数据表的管理等多个方面。下面将详细讲解这些基本操作。 1. 显示数据库: 使用`SHOW DATABASES;`命令可以列出...

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

    1. **客户端与服务器端编码不一致**:DELPHI客户端与MySQL服务器端的字符编码设置不一致是导致中文乱码的主要原因。 2. **数据库表的字符集设置**:如果MySQL数据库中的表字符集不是统一的UTF-8,那么在查询时就可能...

Global site tag (gtag.js) - Google Analytics