Mysql 学习过程踩的编码坑

日常使用数据是通过数据后台导出的数据,彼时没有编码格式的概念。

开始学习mysql的时候,稀里糊涂安装了mysql,也没有设置默认的编码方式。
打开默认的数据库,导入数据的时候,即使指定了导入方式,也发现都是乱码,如果打开csv格式数据源,另存为excel格式,导入就可以。

但是百M级别的数据库,用excel打开,那是可怕的慢。为了解决这个问题,进一步学习了非常多非常多的知识。
安装mysql的时候,数据库的默认编码格式是Latin1,而导出数据编码格式是gbk,导入数据库自然是乱码,但为何excel编辑另存为后的数据源就正常了我也不知道。

解决办法1️⃣
使用其他工具将文件转码,我写了一个PYTHON小程序,将文件改变为指定编码格式,导入就不会乱码了;

使用到python pandas read_csv()的函数,数据源太多的时候需要用到分块读取再写入。

解决办法2️⃣
新建一个数据库,制定数据库的编码格式与源数据的编码格式一致。

'''创建指定编码格式的数据库,指定编码为gbk'''

create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

'''创建指定编码格式的数据库,指定编码为utf-8'''

CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

补充知识,如何查询文件编码格式;
MACOS 有个命令行工具:enca 可以查看编码格式,也可以修改编码,有兴趣可以进一步学习下;


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • show charcater set; show variables like '%character%'; 1....
    SkTj阅读 1,536评论 0 2
  • 前段时间公司内部博客上凯哥分享了一篇关于mysql字符集编码的文章,之前我对mysql字符集一块基本没有深究过,看...
    __七把刀__阅读 6,489评论 14 18
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,042评论 2 89
  • 穿衣显瘦脱衣有肉就是这样!!! 这不是一般的狗子! 这就很厉害了! 你玩得High走位很风骚。 挑战失败️️!!!...
    邓平1阅读 200评论 0 0
  • 尤瓦尔·赫拉利的《人类简史》从人类自身的角度梳理了一遍人类进化的历程。从认知革命到农业革命再到工业革命,直到科学革...
    勿人驾驶阅读 469评论 0 0