MongoDB Compass导出CSV时Unicode字符显示异常的解决方法咨询
嘿,我之前也遇到过一模一样的问题!当时折腾了好一会儿才找到几个可行的解决办法,分享给你试试:
使用
mongoexport命令行工具导出(推荐)
Compass的导出功能确实没有直接设置编码的选项,但官方的命令行工具mongoexport支持指定UTF-8编码,完美解决Unicode乱码问题。你只需要打开终端,运行类似这样的命令:mongoexport --uri "mongodb://localhost:27017/your_database" --collection your_collection --type csv --fields field1,field2,field3 --out output.csv --encoding utf-8记得把
your_database、your_collection、field1,field2这些参数换成你自己的数据库名、集合名和需要导出的字段就行。这个方法我亲测有效,导出的CSV里Unicode字符完全正常。导出后手动转换CSV文件编码
如果实在不想碰命令行,也可以先从Compass导出CSV文件,然后用支持编码转换的文本编辑器(比如Notepad++、Sublime Text)打开它,接着选择编辑器里的“编码”选项,把文件转为UTF-8编码(部分软件可能需要选UTF-8-BOM格式,才能让Excel这类工具正确识别),最后保存即可。不过这个方法适合小文件,大文件可能会有点卡顿。检查打开CSV的工具是否默认使用UTF-8编码
有时候乱码并不是导出的问题,而是你打开CSV的软件(比如Excel)默认用了其他编码(比如GBK)读取。拿Excel举例,你可以通过“数据”->“自文本/CSV”的方式导入文件,在导入向导里明确选择UTF-8编码,这样就能正常显示Unicode字符了。
我当时是用第一个方法解决的,命令行虽然不如Compass直观,但胜在灵活可控。你可以根据自己的情况选一个试试~
备注:内容来源于stack exchange,提问作者Andy

