使用mysql数据库,中文乱码,在网上搜索了资料,修改了my.ini文件:default-character-set=utf8,创建数据库、表、
字段的编码都为utf8;SHOW VARIABLES LIKE 'character%':
命令行下插入中文数据,报错。通过mysql GUI插入中文数据,而查询出来的结果乱码;不知道为什么!
既然utf8乱码了,就 set nams gbk; set character_set_database=gbk;
中文插入和查询正确。
下面是几个变量的含义:
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 客户端工具中设置编码为 gb2312。 三、Web.config 中设置连接字符串中的编码 在 ASP.NET 应用...
本教程将介绍如何解决Unity3D中与MySQL数据库连接时的字符编码问题,确保数据能够正确地以UTF-8格式存储和读取。 首先,我们遇到的问题是即使设置表的默认字符集为UTF8,并且在发送查询时使用UTF-8编码,仍然会出现...
字符集是数据库中用于数据存储和检索的字符编码规则,设置合适的字符集对于多语言数据处理至关重要。 **知识点四:项目应用** 本教案强调理论与实践相结合,设计了多个项目场景来加深学生对MySQL技术的理解和应用...
MySQL 数据库的字符编码问题一直是开发者们头疼的问题,尤其是在多语言环境下。如果您的 MySQL 数据库的字符编码不是 UTF8,可能会导致数据乱码、无法读取等问题。今天,我们将教您如何将 MySQL 字符编码修改为 UTF8...
Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何解决Mysql数据库乱码问题...
MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在...
UTF-8是一种广泛使用的多字节字符编码,支持全球大部分语言,包括中文,因此推荐将其作为数据库的默认字符集。 首先,创建数据库时应指定UTF-8字符集。在MySQL中,可以使用以下命令创建一个名为`my_db`的数据库,并...
3. **MySQL数据库同步**:数据库同步是为了保持多个数据库实例间的数据一致性,这在分布式系统、灾备恢复、多数据中心部署等场景下尤为重要。MySQL提供了如Replication、Federated Engine等技术实现数据同步。 4. *...
Ubuntu MySQL 中文乱码问题解决方案 在 Ubuntu 系统中,MySQL 数据库...* MySQL 数据库字符编码设置详解 * Ubuntu 系统中 MySQL 数据库安装和配置 * Java 语言中 MySQL 数据库的应用和集成 * UTF-8 字符编码标准详解
### MySQL数据库字符集的问题研究 #### 一、MySQL字符集概述 MySQL数据库是瑞典MySQL AB公司开发的一款小型关系型数据库管理系统,因其速度快、易用性好、支持SQL、网络支持性好、可移植性好及费用低廉等特点,在...
在MySQL数据库管理与维护的过程中,修改字符集是一个常见的需求,特别是在需要处理多语言或特定编码格式的情况下。本文将详细介绍如何解决“MySQL修改字符集默认问题”,包括修改步骤、注意事项以及可能遇到的问题...
MySQL驱动是编程语言与MySQL数据库之间沟通的桥梁,它允许你的应用程序执行SQL查询、管理数据等操作。不同的编程语言有不同的MySQL驱动,例如Java中的JDBC驱动(Java Database Connectivity),Python中的pymysql或...
mysql批量修改字符编码,可以把整个数据库的所有表的charset统一设置为utf-8的。
各参数含义与上述相同,`charset`用于指定字符编码。 在实际应用中,你还需要考虑一些额外因素,例如设置超时时间、使用SSL连接、指定连接池等。例如,增加`Connection Timeout`参数可以控制连接尝试的时间,如: ...
MySQL数据库是广泛应用于网站开发和数据管理的重要工具,它的操作涵盖了数据库的创建、查询、删除以及数据表的管理等多个方面。下面将详细讲解这些基本操作。 1. 显示数据库: 使用`SHOW DATABASES;`命令可以列出...
根据给定文件的信息,我们可以详细地探讨Oracle数据库与MySQL数据库的连接信息,包括它们的驱动程序、连接字符串等关键组成部分。 ### Oracle数据库连接信息 #### 驱动程序 Oracle数据库连接通常会用到`oracle....