MsSQL数据导入到Mongo的默认编码问题(正确导入Mongo的方法)

柴门鸟雀噪,归客千里至。光明顶下来,一路听着阵阵松涛,我们走过西海,飞来石,天海,爬过百步云梯,伴着凤凰松迎客松的多姿到了玉屏峰。玉屏峰犹如一道屏障,山面光滑如镜子,如屏风,还不时有几个斗大的字,说是哪位名人留下的。玉屏峰最险的地方是在一线天,上下达七八十度的落差,台阶狭,仅容一人,台阶窄,仅托一足,百米长,走多了,腿便打抖了,害怕了,还不时地叫着好刺激呀。

先说下我操作的步骤。
1.从sql2008的management studio查询5万条数据,使用右键导出为csv
2.由于默认导出没有带列名,手工编辑后增加了列名
3.使用mongoimport导入数据,错误,提示invalid utf8 character


检查了一下,是因为默认导出为csv的时候,不是utf8的格式而是系统的默认编码,采用openoffice编辑另存为utf8格式就可以解决编码问题,但是发现使用openoffice后列名和数据不匹配,列名很多都叠在一起了,虽然数据是能导入进去了,但是根本不能用。

换了一种做法,不使用导出csv,直接copy数据到excel然后另存为csv,一切正常,这里就发生了一个很奇怪的问题,这里使用的编码还是默认的系统编码,为什么不提示错误呢?

由于手工转换成csv在数据量小得时候可以,但是数据量大的时候编辑比较慢,就在mangement studio中配置了一下。
选项-查询结果-sql server-以网格显示结果,选中“在复制或保存结果时包含列标题”
这样在使用导出为csv的时候,默认就是带着列名的。


mongoimport -d local -c testtable --type csv --headerline --file c:\inmongo.csv

直接就可以了。

但是这个编码的问题很奇怪,不知道有人深入了解过没有。

本文MsSQL数据导入到Mongo的默认编码问题(正确导入Mongo的方法)到此结束。懦弱的人只会裹足不前,莽撞的人只能引为烧身,仅有真正勇敢的人才能所向披靡。小编再次感谢大家对我们的支持!

标签: 导入到 MsSQL