MySQL会出现中文乱码的原因不外乎下列几点:

  • server本身设定问题,例如还停留在latin1
  • table的语系设定问题(包含character与collation)
  • 客户端程式(例如php)的连线语系设定问题

1.避免创建数据库及表出现中文乱码和查看编码方法

a.创建数据库的时候

CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

b.建表的时候

CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

建库和建表时都使用相同的编码格式,基本上不会出问题。

程序连接配置数据链接时:

jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8 

如果上面的这种方式不行,试试这样写:

jdbc:mysql://localhost:3306/database?characterEncoding=UTF-8 

c.如果你已经建了库和表可以通过以下方式进行查询:
查看默认的编码格式:

show variables like "%char%";

+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------------+
注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;

执行SET NAMES utf8的效果等同于同时设定如下:

SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

查看test数据库的编码格式:

show create database test;

+------------+------------------------------------------------------------------------------------------------+
| Database | Create Database |
+------------+------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+------------+------------------------------------------------------------------------------------------------+

查看yjdb数据库的编码格式:

 show create table yjdb;| yjdb | CREATE TABLE `yjdb` (
`sn` int(5) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`brc` varchar(6) NOT NULL,
`teller` int(6) NOT NULL,
`telname` varchar(10) NOT NULL,
`date` int(10) NOT NULL,
`count` int(6) NOT NULL,
`back` int(10) NOT NULL,
PRIMARY KEY (`sn`),
UNIQUE KEY `sn` (`sn`),
UNIQUE KEY `sn_2` (`sn`)
) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

2.避免导入数据有中文乱码的问题

a.将数据编码格式保存为utf-8
设置默认编码为utf8:

set names utf8;

设置数据库db_name默认为utf8:

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

设置表tb_name默认编码为utf8:

ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

导入:

LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;

b.将数据编码格式保存为ansi(即GBK或GB2312)
设置默认编码为gbk:

set names gbk;

设置数据库db_name默认编码为gbk:

ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

设置表tb_name默认编码为gbk:

ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

导入:

LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;

注意:UTF8不要导入gbk,gbk不要导入UTF8;dos下不支持UTF8的显示;

3.解决网页中乱码的问题

将网站编码设为 utf-8,这样可以兼容世界上所有字符。
如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。
a.编辑/etc/my.cnf ,在[mysql]段加入

default_character_set=utf8;

b.在编写Connection URL时,加上

?useUnicode=true&characterEncoding=utf-8

c.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf8或者gbk;

转载于:https://www.cnblogs.com/java-class/p/4557146.html

MySql 中文乱码排查解决方案相关推荐

  1. MySQL编程(0) - Mysql中文乱码问题解决方案

    MySQL 5.6 for Windows 解压缩版配置安装: http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html MySQL ...

  2. (转)Mysql中文乱码完美解决方案

    MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如 ...

  3. c# mysql 中文,c#操作mysql中文乱码的解决方案_c#应用

    误区: 近几天来搜索网上资源介绍理论上的可选编码方案为:gb2312/gbk/utf8等支持双字节的编码类型均可,实际试验过程中发现并不是这样的. A.大家跟风都想使用utf8,但UTF8在处理中文时 ...

  4. 解压版mysql中文变成_解压版MYSQL中文乱码问题解决方案

    安装的是解压版的MYSQL 1:解压之后copy 一个my.ini文件 然后添加字节编码配置: [client] default-character-set=gbk [mysqld] characte ...

  5. linux下mysql乱码_linux下mysql中文乱码

    登录mysql执行 mysql> show variables like 'character%'; 发现编码有些不是utf-8 修改/etc/mysql/my.cnf,网上说的是/etc/my ...

  6. C# 连接 Mysql 中文乱码问题

    如题这个问题还是让人比较揪心的.网上也有不少答案,五花八门,不知道谁对谁错.个人认为有几篇文章处理的这个问题还不错,现总结如下: 第一篇: c#连接MySQL解决汉字乱码 突然发现我的数据表中,有汉字 ...

  7. Mysql 中文乱码问题完美解决方案

    Mysql 中文乱码问题完美解决方案 参考文章: (1)Mysql 中文乱码问题完美解决方案 (2)https://www.cnblogs.com/fangyh/p/6286699.html 备忘一下 ...

  8. 图形化mysql出现乱码_关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)...

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅. 首先: 用show variables like &quo ...

  9. mysql中文乱码解决方案_Mysql中文乱码解决方案

    Mysql中文乱码解决方案 时间:2017-07-11     来源:华清远见JAVA学院 中文乱码问题一直是我们编程过程中比较常见又让人头疼的问题,但是只要按照标准进行配置,就能很好的避免出现中文乱 ...

最新文章

  1. java spark persist,hadoop – 我的sparkDF.persist(DISK_ONLY)数据存储在哪里?
  2. asp.net用Zxing库实现条形码输出
  3. 【算法与数据结构】堆排序是什么鬼?
  4. bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类 (三) 图片裁剪
  5. linux dhcp 服务(转)
  6. 蒙特卡罗法近似求解圆周率π
  7. OpenStack已死?恐怕你想多了 | 技术头条
  8. npm install Saving to file: /root/.jenkins/workspace/ems-web/node_modules/chromedriver/2
  9. 第六周--------职业规划------正确的选择让你少奋斗十年
  10. 强化学习基础 | (15) A3C
  11. Photoshop学习笔记
  12. nRF51 SDK 例程分析——Blinky Example
  13. vue+axios上传文件的几种方式及步骤(以上传图片为例)
  14. 在C#中使用OpenCV(使用OpenCVSharp)
  15. 全球回报最好的 40 个 VC 投资案例,我们可以从中学到什么?
  16. python 下载qq群文件_python作业/练习/实战:下载QQ群所有人的头像
  17. 计算机组成认知的笔记1000字,[转载]笔记整理——认知负荷理论
  18. 温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 2 Kotlin语法
  19. 2020年团体程序设计天梯赛L1题目集(题目+代码)
  20. 学习java 程序员技术练级攻略 作者:酷壳

热门文章

  1. 临床医学与计算机考研哪个好考,临床医学考研院校难度概况
  2. 爬虫的步骤解析内容xpath介绍_爬虫入门到精通-网页的解析(xpath)
  3. 【thymeleaf】Access to request parameters is forbidden in this context
  4. 【CKEditor】下载历史版本4.8.x
  5. php操作xml文件,php xml文件操作代码(一)
  6. yii2设置session时间_关于 Swoft 2.0 版本用 Redis 存储 session 时配置问题
  7. 风控建模 python 知乎_风控建模基本要求及面试问题小结
  8. Docker使用中遇到的问题
  9. 人力资源oracle,Oracle Connections
  10. qpython3可视图形界面_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...