MySql 中文乱码排查解决方案
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 中文乱码排查解决方案相关推荐
- MySQL编程(0) - Mysql中文乱码问题解决方案
MySQL 5.6 for Windows 解压缩版配置安装: http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html MySQL ...
- (转)Mysql中文乱码完美解决方案
MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如 ...
- c# mysql 中文,c#操作mysql中文乱码的解决方案_c#应用
误区: 近几天来搜索网上资源介绍理论上的可选编码方案为:gb2312/gbk/utf8等支持双字节的编码类型均可,实际试验过程中发现并不是这样的. A.大家跟风都想使用utf8,但UTF8在处理中文时 ...
- 解压版mysql中文变成_解压版MYSQL中文乱码问题解决方案
安装的是解压版的MYSQL 1:解压之后copy 一个my.ini文件 然后添加字节编码配置: [client] default-character-set=gbk [mysqld] characte ...
- linux下mysql乱码_linux下mysql中文乱码
登录mysql执行 mysql> show variables like 'character%'; 发现编码有些不是utf-8 修改/etc/mysql/my.cnf,网上说的是/etc/my ...
- C# 连接 Mysql 中文乱码问题
如题这个问题还是让人比较揪心的.网上也有不少答案,五花八门,不知道谁对谁错.个人认为有几篇文章处理的这个问题还不错,现总结如下: 第一篇: c#连接MySQL解决汉字乱码 突然发现我的数据表中,有汉字 ...
- Mysql 中文乱码问题完美解决方案
Mysql 中文乱码问题完美解决方案 参考文章: (1)Mysql 中文乱码问题完美解决方案 (2)https://www.cnblogs.com/fangyh/p/6286699.html 备忘一下 ...
- 图形化mysql出现乱码_关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)...
最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅. 首先: 用show variables like &quo ...
- mysql中文乱码解决方案_Mysql中文乱码解决方案
Mysql中文乱码解决方案 时间:2017-07-11 来源:华清远见JAVA学院 中文乱码问题一直是我们编程过程中比较常见又让人头疼的问题,但是只要按照标准进行配置,就能很好的避免出现中文乱 ...
最新文章
- java spark persist,hadoop – 我的sparkDF.persist(DISK_ONLY)数据存储在哪里?
- asp.net用Zxing库实现条形码输出
- 【算法与数据结构】堆排序是什么鬼?
- bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类 (三) 图片裁剪
- linux dhcp 服务(转)
- 蒙特卡罗法近似求解圆周率π
- OpenStack已死?恐怕你想多了 | 技术头条
- npm install Saving to file: /root/.jenkins/workspace/ems-web/node_modules/chromedriver/2
- 第六周--------职业规划------正确的选择让你少奋斗十年
- 强化学习基础 | (15) A3C
- Photoshop学习笔记
- nRF51 SDK 例程分析——Blinky Example
- vue+axios上传文件的几种方式及步骤(以上传图片为例)
- 在C#中使用OpenCV(使用OpenCVSharp)
- 全球回报最好的 40 个 VC 投资案例,我们可以从中学到什么?
- python 下载qq群文件_python作业/练习/实战:下载QQ群所有人的头像
- 计算机组成认知的笔记1000字,[转载]笔记整理——认知负荷理论
- 温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 2 Kotlin语法
- 2020年团体程序设计天梯赛L1题目集(题目+代码)
- 学习java 程序员技术练级攻略 作者:酷壳
热门文章
- 临床医学与计算机考研哪个好考,临床医学考研院校难度概况
- 爬虫的步骤解析内容xpath介绍_爬虫入门到精通-网页的解析(xpath)
- 【thymeleaf】Access to request parameters is forbidden in this context
- 【CKEditor】下载历史版本4.8.x
- php操作xml文件,php xml文件操作代码(一)
- yii2设置session时间_关于 Swoft 2.0 版本用 Redis 存储 session 时配置问题
- 风控建模 python 知乎_风控建模基本要求及面试问题小结
- Docker使用中遇到的问题
- 人力资源oracle,Oracle Connections
- qpython3可视图形界面_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...