cmd下的SQL中文乱码问题 | 您所在的位置:网站首页 › sql结果窗口显示 › cmd下的SQL中文乱码问题 |
文章目录
cmd窗口的编码MySQL相关的编码1. SQL Server的编码2. 客户端的编码
结果检查
cmd窗口的编码
Windows命令行cmd窗口的默认编码方式是GBK,有时候我们可能要改成utf-8,可以参考下面的指令。但是注意这个命令只对当前窗口有效,并不是永久性修改。所以新开一个窗口的话默认的还是GBK,还得再运行一遍这个命令。 # 编码方式改成utf-8 C:\WINDOWS\system32>chcp 65001 # 编码方式改成gbk C:\WINDOWS\system32>chcp 936你可以在命令行窗口上方菜单栏处“右键->属性”,查看当前的字符编码方式: ![]() 注意,下面我们还是保持cmd是默认的gbk编码,然后去改SQL的配置。因为cmd每次都得改编码很麻烦。我们只要让cmd和MySQL都能知道对方的编码是什么,就可以正确解码。不一定要大家都是gbk或者都是utf8. 上面就当给大家科普一下cmd命令行的编码方式。我们还是保持cmd的默认编码方式gbk!!! MySQL相关的编码 1. SQL Server的编码数据库和表格的编码方式我们一般都会选为utf-8,但是下载的MySQL的默认编码格式通常是latin1,导致我们如果我们没有手动指定为utf-8的话,新创建的数据库和表都会默认latin1编码。这每次都手动改很麻烦。所以我们要把SQL的整个编码都改成utf8. 解决方法: 第一步:找到MySQL的安装目录下的my.ini,默认安装位置是这样的: C:\Program Files (x86)\MySQL\MySQL Server 5.5\my.ini第二步:用记事本打开my.ini文件: 第三步:重启mysql服务,使修改生效,不重启是不会生效的!: ![]() 目前,客户端是cmd命令行,它的编码方式是默认的gbk,而SQL服务器的编码是utf8。这二者不一样没事,我们只要让服务器知道客户端发来的消息是gbk编码的就行了,服务器知道后就可以正确地进行转换编码,不会乱码。就怕:我以为你发来的信息是utf8编码的,而你实际上用的是gbk编码。 解决方法:还是在my.ini文件里,找到客户端编码的地方,修改成gbk: ![]() 上面都操作好后。我们来用cmd命令行连接一下sql服务器: 第一步:新开一个cmd窗口,账号密码登录一个数据库: C:\WINDOWS\system32>mysql -uroot -padmin -Dhey第二步:查看当前的编码方式: mysql> show variables like '%char%';可以看到database, server, system这些与SQL相关的字符集都变成utf-8了,而client, connection, results这些与客户端、客户端-服务器连接、返回给客户端的结果相关的字符集都变成gbk了(因为命令行窗口是gbk编码)。 第三步:检查能否从服务器读回中文,并在cmd窗口显示: 可以正常读回中文,并且显示正常。 第四步:检查能否从客户端正确发送中文到服务器: 读回的ID确实是10000,是正确的。这说明服务器看到的name就是‘夏侯惇’。说明我们可以正确的上传中文到服务器。 至此,cmd和SQL服务器可以畅通无阻的使用中文英文了。并且上面的步骤,操作一次,享受一生。 |
CopyRight 2018-2019 实验室设备网 版权所有 |