MySQL 中文乱码解决
測试环境:服务端和client均为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
注意:该方法设置的參数在server重新启动后失效。
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 仅对表数据的编码处理生效。对表结构字段凝视中的中文无效。
补充:
Java 连接MySQL。中文存储到数据库后为乱码。
解决:在JDBC数据库连接后增加编码说明串,比如:
jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=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;
MySQL 中文乱码解决的更多相关文章
- php mysql 中文乱码解决方法
本文章向码农们介绍php mysql 中文乱码解决方法,对码农们非常实用,需要的码农可以参考一下. 从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行 解 ...
- 可遇不可求的Question之导入mysql中文乱码解决方法篇
可遇不可求的Question之导入mysql中文乱码解决方法篇 先 set names utf8;然后 source c:\1.sql ?
- mysql 中文乱码解决方法
最近在.NET 项目中用EF连接mysql,插入中文数据时老是显示乱码,在创建表时都已将编码指定了,但是还是出现乱码,折腾了一阵子才发现在连接字符串里面也要加上指定编码 Character Set=u ...
- mysql中文乱码解决方式
近期项目使用到mysql.却突然出现了中文乱码问题.尝试了多种方案,最终解决乱码问题,总结一下解决方式,给遇到同样问题的人一点參考. 中文乱码的原因 1.安装mysqlserver的时候编码集设定有问 ...
- php mysql 中文乱码解决,数据库显示正常,php调用不正常
一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是 ...
- mysql中文乱码解决办法
Windows 在C:\Program Files\MySQL\MySQL Server 5.5\bin目录下 MySQLInstanceConfig.exe执行 重新配置character_set_ ...
- mysql中文乱码解决方法
latin1(1和l的区别,l要么没有缺缺,要么缺缺是向左的直的; 1向左的缺缺是弯曲的,应该是可以看得出来的)是8位的字符集,表示英文和西欧字母. 瑞士: Switzerland [swits2la ...
- mysql中文乱码解决
有时服务端显示中文正常,但在客户端却显示?乱码, 首先,系统字符集, echo $LANG vi .bash_profile export $LANG=en_us.utf8 另一个是, mysql的, ...
- Ubuntu中MySQL中文乱码解决
1.以root登陆,在终端输入命令 sudo gedit /etc/mysql/my.cnf在打开的文件中找到[client]在下面加入default-character-set=utf8 找到 [m ...
随机推荐
- [BZOJ3672][Noi2014]购票 斜率优化+点分治+cdq分治
3672: [Noi2014]购票 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 1749 Solved: 885[Submit][Status][ ...
- hdu4347
求与询问点欧几里德距离前m小的点 其实就是在kdtree询问的时候用优先队列维护一下就好了 好久没写kdtree练一练,注意这道题是多测 #include<bits/stdc++.h> u ...
- bzoj 1109
思路:我们考虑dp[ i ] 表示的是 i 在指定位置上 的最大个数, dp[ i ] = max(dp[ j ] + 1) j需要满足3个条件 1. j < i 2. a[ j ] < ...
- Java面向对象封装和继承
面向对象 什么是面向过程.面向对象? 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. 面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.例如:公司打扫卫生( ...
- Arduino可穿戴教程之第一个程序——Blink(一)
Arduino可穿戴教程之第一个程序——Blink(一) 至此我们的硬件和软件部分都准备好了,是时候测试一下他们是否可以和谐地合作了.当然,第一个程序我们并不需要自己来写,因为我们还没有了解过Ardu ...
- CentOS 报错cannot execute binary file
在安装软件过程中执行文件,报错cannot execute binary file 1.查看是否root用户登录,当前用户是否有可执行权限 2.ls -l 查看文件是否具有可执行权限 3.要使用对应的 ...
- C++ STL 全排列函数详解
一.概念 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况叫全排列.如果这组数有n个,那么全排列数为n!个. 比如a ...
- [BZOJ4026]dC Loves Number Theory(线段树)
根据欧拉函数的定义式可知,可以先算出a[l]*a[l+1]*...*a[r]的值,然后枚举所有存在的质因子*(p-1)/p. 发现这里区间中一个质因子只要计算一次,所以指计算“上一个同色点在区间外”的 ...
- 【2-SAT】【DFS】【分类讨论】Gym - 101617K - Unsatisfying
题意:给你一张2-SAT,问你加至少几句a V b(不能用非运算)这样的语句,使得其无法全为真. 如果最开始没有左右两项都含非运算的析取表达式,则无解,因为显然你可以对每一项的不含非的那项规定为真,使 ...
- bzoj 1086 树分块
将树分成一些块,做法见vfleaking博客. /************************************************************** Problem: 108 ...