程序员@产品

Mysql 学习过程踩的编码坑

2018-09-15  本文已影响0人  秋男Zzz

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

开始学习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
上一篇 下一篇

猜你喜欢

热点阅读