MySQL 中文乱码解决

测试环境:服务端和客户端均为win7,MySql数据库、表字符集为utf-8,字段字符集与表一致。

1、使用mysql命令进行操作时的乱码问题解决。

(1)设置当前字符集

set names gbk 

(2)修改单个字符集参数

使用命令show variables like ‘char%‘,查看所有字符集变量。

+--------------------------+----------------------------------------+

| Variable_name            | Value                                  |

+--------------------------+----------------------------------------+

| character_set_client     | utf8                                   |

| character_set_connection | utf8                                   |

| character_set_database   | utf8                                   |

| character_set_filesystem | binary                                 |

| character_set_results    | utf8                                   |

| character_set_server     | latin1                                 |

| character_set_system     | utf8                                   |

| character_sets_dir       | D:\mysql-5.6.25-winx64\share\charsets\ |

+--------------------------+----------------------------------------+

修改单个字符集:

set character_set_results=gbk

注意:该方法设置的参数在服务器重启后失效。

2、mysqldump导出时乱码问题解决

(1)导出有两种情况:一是导出表结构,二是导出表结构和数据。

导出全表:

mysqldump -uroot -p [databasename] --table [tablename]

只导出表结构:

mysqldump -uroot -p [databasename] --table [tablename] -d

(2)实验

经测试,在控制台环境,导出表结构时,无论怎么设置--default-character-set参数,均无法正常显示字段注释中的中文,命令如下:

mysqldump -uroot -p --default-character-set=gbk test --table t_data

但表数据中的中文可以正常显示(通过设置--default-character-set=gbk)。

但是,若导出为文件,则可以正常显示,命令示例如下:

mysqldump -uroot -p --default-character-set=gbk mydb --table t_data -d > t_data.sql

有趣的是,不管--default-character-set设置为何值(gbk,utf8,latin1)均能正常显示,在控制台显示乱码和控制台本身有一定的关系。

(3)总结

在控制台环境,表结构中的中文字段注释总是不能正常显示,使用管道输出到文件,则总能正常显示(使用UltraEdit打开)。

表数据中必须通过参数设置--default-character-set=gbk来控制正常输出中文,包括控制台显示或用管道输出到文件。

也就是说--default-character-set=gbk 仅对表数据的编码处理生效,对表结构字段注释中的中文无效。

参考:

1、查看创建表使用的字符集:

show create table [tableName]

2、查看表字段使用的字符集:

show full columns from [tableName]

3、查看表

show tables;

4、查看表信息

desc [tablename]

5、查看数据库

show databases;

6、查看数据库信息

show create database test;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-05 07:23:30

MySQL 中文乱码解决的相关文章

mysql中文乱码解决方式

近期项目使用到mysql.却突然出现了中文乱码问题.尝试了多种方案,最终解决乱码问题,总结一下解决方式,给遇到同样问题的人一点參考. 中文乱码的原因 1.安装mysqlserver的时候编码集设定有问题 2.创建数据库的时候编码集设定有问题 3.创建表的时候编码集设定有问题 4.client的编码集设定有问题 能够通过命令查看编码集: show variables like "%char%"; 经常使用编码集 1.java中的经常使用编码UTF-8;GBK;GB2312;ISO-885

【开发必读】php与mysql中文乱码解决办法

原文地址:http://www.phpthinking.com/archives/320 MySQL对中文的支持程度还是很有限的,尤其是新手,但凡出现乱码问题,就会头大. 乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号. 症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少个?号. 原因:没有在PHP网页中用代码告诉MySQL该以什么字符集输出汉字. 解决

mysql 中文乱码解决方法

最近在.NET 项目中用EF连接mysql,插入中文数据时老是显示乱码,在创建表时都已将编码指定了,但是还是出现乱码,折腾了一阵子才发现在连接字符串里面也要加上指定编码 Character Set=utf8(server=XXXXX;user id=XXXX;password=XXXXX;Character Set=utf8;database=XXXXX) 这样再次运行程序插入数据将不会在出现中文乱码的情况 在Java项目中同样如此,如果连接字符串中不加入指定编码的话,插入中文数据就会出现乱码

php mysql 中文乱码解决,数据库显示正常,php调用不正常

一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存.要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码: 1.文件编码:指的是页面文件(.html,.php等)本身是以何种编码来保存的.记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不太会出问题.而ZendStudio却不会

mysql 中文乱码 解决

数据库安装设置编码: mysql默认的字符编码是latin1,而我用的是utf-8,存入数据库就变成了?????这样的乱码,解决方法:   修改安装路径下的my.ini文件,default-character-set=latin1和character-set-server=latin1都改为default-character-set=utf8重启既可.

Ubuntu中MySQL中文乱码解决

1.以root登陆,在终端输入命令 sudo gedit /etc/mysql/my.cnf在打开的文件中找到[client]在下面加入default-character-set=utf8 找到 [mysqld_safe]在下面加入default-character-set=utf8 找到[mysqld]在下面加入,12.04以后 character-set-server=utf8 init_connect='SET NAMES utf8' 或者12.04以前default-character-

ubuntu mysql 中文乱码解决

在CSDN上看到的一个方法: http://blog.csdn.net/zht666/article/details/8783396 其实就是在创建数据库的时候指定默认编码,我在我的电脑上试了一下,发现它自动生成的命令是: CREATE SCHEMA `new_schema` DEFAULT CHARACTER SET utf8 ; 那么我在命令行中新建数据库的代码为: create database default character utf8; 如下是我的插入和查询结果: mysql> se

CRT 和mysql 中文乱码解决方式

mysql 安装mysql 1. 使用root用户: su root 2. 安装 yum install mysql yum install mysql-server yum install mysql-devel(可选) 3. 修改配置信息,添加: vim /etc/my.cnf [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 lower_case_table_names=1 4. 启动mysql:se

Ubuntu下MySQL中文乱码解决

转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992381.html 修改/etc/MySQL/my.cnfsudo gedit /etc/mysql/my.cnf 在my.cnf文件中的[client]段和 [mysqld]段加上以下两行内容:[client]default-character-set=utf8[mysqld]default-character-set=utf8 需要重启mysql服务停用:sudo mysqladmin sh