MySQL命令行查询乱码解决方法

转自Agoly的博客,原文链接https://www.cnblogs.com/qmfsun/p/4846467.html 感谢博主Agoly这篇文章说的很详细很透彻。

 

 

MySQL会出现中文乱码的原因不外乎下列几点:
1.server本身设定问题,例如还停留在latin1


2.table的语系设定问题(包含character与collation)


3.客户端程式(例如php)的连线语系设定问题

强烈建议使用utf8,utf8可以兼容世界上所有字符

 

 

第一步:找到安装mysql的目录找到 my.ini 文件;

\

第二步:使用记事本打开my.ini文件 ,

找到这个地方 看看default-character-set 是不是 utf8不是的话 改为utf8即可!(以前的版本可能没有这句话 直接加上就好了!)






# MySQL client library initialization.
[client]
port=3306
[mysql]
default-character-set=utf8

第三步:在mysql数据库cmd中输入:show variables like'%char%';

 

 

第四步:改变原有数据库的编码方式:

 

1
2
3
4
set character_set_database=utf8;
set character_set_server=utf8;
set character_set_client=gb2312;
set character_set_connection=gb2312;

 

 

 

第五步:改变后的编码方式:

 

第六步:查看查询结果:

 

第六步:插入中文数据试试!ok!是可以插进去的!

\

 

第七步:解决select * from table时的乱码,其实只用到第四部和第七部

把上面的编码方式改变:

set character_set_results=gb2312; 就可以正常显示!

 

 

关于GBK、GB2312、UTF8

UTF- 8:Unicode Transformation Format-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。

GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。

GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:
GBK、GB2312--Unicode--UTF8
UTF8--Unicode--GBK、GB2312

对于一个网站、论坛来说,如果英文字符较多,则建议使用UTF-8节省空间。不过现在很多论坛的插件一般只支持GBK。

GB2312是GBK的子集,GBK是GB18030的子集
GBK是包括中日韩字符的大字符集合
如果是中文的网站 推荐GB2312 GBK有时还是有点问题
为了避免所有乱码问题,应该采用UTF-8,将来要支持国际化也非常方便
UTF-8可以看作是大字符集,它包含了大部分文字的编码。
使用UTF-8的一个好处是其他地区的用户(如香港台湾)无需安装简体中文支持就能正常观看你的文字而不会出现乱码。

gb2312是简体中文的码
gbk支持简体中文及繁体中文
big5支持繁体中文
utf-8支持几乎所有字符

首先分析乱码的情况

 

 

MySQL中涉及的几个字符集

character-set-server/default-character-set:服务器字符集,默认情况下所采用的。
character-set-database:数据库字符集。
character-set-table:数据库表字符集。
优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。
character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。
character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。
在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。

要处理中文,则可以将character-set-server和character-set-client均设置为GB2312,如果要同时处理多国语言,则设置为UTF8。

关于MySQL的中文问题

解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集。
character_set_client:客户端的字符集。
character_set_results:结果字符集。
character_set_connection:连接字符集。
设置这三个系统参数通过向MySQL发送语句:set names gb2312 

转载于:https://www.cnblogs.com/wentirensheng/p/10663364.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『流畅的Python』第1~4章笔记_数据结构、编码

由于1~4章内容零散且基础,所以统计一下涉及到的内容,记录一下,方便查阅(第一张图右键新页面打开即可看到清晰大图)

docker 安装ELK

参考文档: Docker ELK使用文档:http://elk-docker.readthedocs.io/ 1.拉取镜像 查看 Docker Hub 的镜像 docker search elk 拉取镜像 sudo docker pull sebp/elk 2.启动容器 docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -p 4560:4560 -it --na…

在Teams Hackathon上介绍LuckyDraw

很荣幸有机会在今天的Teams Hackathon上介绍LuckyDraw这个teams app。 因为到场的都是各路开发高手,所以当时在准备这个ppt的时候特别增加了难度等级,哈哈。 从如何构建云原生的Teams app,到IaC,重点讲了如何开发一个面向全球用户…

Word 2010 制作文档结构之图标自动编号设置

注意: 使用图片自动编号时,如果文档标题使用的样式是通过“将所选内容保存为新快速样式”所生成的样式,则图片自动编号不会生效 因此设置标题样式时,不要 新建样式,直接使用word预设的“标题 1”样式和“标题 2”样式即…

在Teams中对网站的URL特殊解析

Teams中有一个不太被大家注意的扩展点,名字叫Link unfurling,就是对于一些特殊域名的URL进行特别的解释。 可能这么说,大家还是无法理解,我们看一下下面这个图,当用户在message输入框中输入了一窜url后,Te…

Wireshark 在Windows下的安装

1、wireshark官网地址:https://www.wireshark.ort/ 下载抓包驱动:windows使用winpcap,Linux使用libcap2、安装下载好的wireshark程序包:3、安装winpcap插件:4、安装USBPcap插件:5、安装完成&…

OSChina 周三乱弹 —— 爸爸说,这个是从他硬盘里掉出来的

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 焕焕 :分享郑秀文的单曲《唉声叹气》 《唉声叹气》 手机党少年们想听歌,请使劲儿戳(这里&am…

LuckyDraw app被评为Microsoft365 App Award

今天查了一下LuckyDraw app,突然发现我上半年开发的Teams app: LuckyDraw,竟然多了一个勋章图标,点进去一看是微软给我的app评了一个”Microsoft 365 App Award”。Super surprise!!😍😍😍 看来我必须要抓…

Teams架构剖析(2019年版本)

在上个月刚刚结束的Ignite大会上,Teams产品的架构师Bill Bliss给大家奉上了最新的Teams的架构设计,之前2017年和2018年微软的技术大会上都Teams架构的分享,但是今年大神把Teams架构讲得很深入,覆盖面很广。我这里就挑一些&#xf…

pycharm工具下代码下面显示波浪线的去处方法

近期安装了python后,发现使用pycharm工具打开代码后发现代码下边会有波浪线的显示;但是该代码语句确实没有错误,通过查询发现了两种方法去掉该波纹的显示,下面就具体说明一下: 方法一: 打开pycharm在右下方…

js面向对象与PHP面向对象总结

js面向对象: 1.什么是对象? 对象:任何实体都是对象,拥有属性和方法两大特征 属性:描述事物的特点; 方法:实物拥有的行为; 2.在JS里 Person.name"zhang" Person.fnfunction…

Dubbo原理与框架设计

Dubbo是常用的开源服务治理型RPC框架,在之前osgi框架下不同bundle之间的方法调用时用到过。其工作原理和框架设计值得开源技术爱好者学习和研究。 一、Dubbo的工作原理 调用关系说明 服务容器负责启动,加载,运行服务提供者。服务提供者在启动…

面向全球用户的Teams app之Culture计量单位和禁忌篇

我在前一篇文章里分享了Global Ready的app时会遇到的不同文化对于数字方面的挑战。这篇我继续分享不同文化对于计量单位和禁忌方面的挑战。 我们先来看一个例子,假如有一个teams bot,它告诉你一些动物的速度,比如它告诉你: 猎豹能…

【我的Android进阶之旅】Android自定义Lint实践

背景 2017年8月份的时候,我在公司开始推广Lint、FindBugs等静态代码检测工具。然后发现系统自带的Lint检测的Issue不满足我们团队内部的特定需求,因此去自定义了部分Lint规则。这个检测运行了大半年,运行良好,团队的代码规范也有了…

存储结构与索引

一、SQL数据存储的基本介绍 数据库中的数据存储涉及页(Page)和区(Extent)这两个概念了。SQL server中数据存储的基本单位是页。为数据库中的数据文件(.mdf或.ndf)分配的磁盘空间可以从逻辑上划分成页(从0到…

面向全球用户的Teams app之时区篇

我在前两篇文章里分享了Global Ready的app时会遇到的不同文化的挑战。这篇我继续分享在时区方面的挑战。 时间是最复杂的,最容易出错的部分。时间复杂的最根本原因是时区问题。 首先,大家都知道,我们地球是圆的,这个意味着如果大…

Linux: Nginx proxy_pass域名解析引发的故障

背景 业务架构: 部署细节:  两容器均部署在同一机器上,通过 docker-compose 编排,并且通过link方式链接。 故障描述 在有次更新代码时,发现前端能够打开,但是所有接口请求全是502(Bad GateWay) 故障排查 …

Oracle建立全文索引详解

Oracle建立全文索引详解1.全文检索和普通检索的区别 不使用Oracle text功能,当然也有很多方法可以在Oracle数据库中搜索文本,比如INSTR函数和LIKE操作: SELECT *FROM mytext WHERE INSTR (thetext, Oracle) > 0; SELECT * FROM mytext WHE…

面向全球用户的Teams app之夏令时篇

我在前两篇文章里分享了Global Ready的teams app时会遇到的不同挑战。这篇我继续分享在夏令时方面的挑战。 夏令时,主要是为了节约能源,英文里通常缩写成DST(Daylight Saving Time)。一般在天亮早的夏季人为将时间调快一小时,可以使人早起早…

面向全球用户的Teams app之合规性篇

我在前两篇文章里分享了Global Ready的app时会遇到的不同挑战。这篇我继续分享在合规性方面的挑战。 说到合规性compliance,不得不说GDPR标准,当我们发布了一个teams app后,微软会要求开发人员做一个security self assessment,这…