MySQL中UTF8编码的数据在cmd下乱码问题解决.docx
文本预览下载声明
MySQL中UTF8编码的数据在cmd下乱码问题解决。数据是通过sql文件导入的,这个sql文件也是UTF8编码的数据库、表、数据库文件也保证是UTF8编码,可在mysql中验证:mysqlshow variables like %character%; 接下来验证数据库的默认编码mysqlshow create database flower;接下来验证数据表的默认编码mysqlshow create table flower;可以看到数据库和数据表的默认编码都是utf8那么为什么还是会乱码呢?这是因为Windows的cmd默认编码是GBK,MySQL里面为UTF8,自然就乱码了,改用工具试试,发现MySQL确实是按照UTF编码存储数据,只不过CMD不支持才出现乱码解决办法是,在输入SQL语句前先设置编码:set names gbk ,再输入SQL为什么这么设置后就能正确显示以UTF8存储的数据呢?看看下面可以看到,client,connection和result的编码已经设置为gbk了,但server,database,system的编码还是utf8!这就是说,虽然数据依然是使用utf8编码存储的,但是客户端以及返回的结果集是gbk的,而此时cmd窗口的编码正好是gbk,因此该结果集能正确显示了。
显示全部