【问题标题】:Import CSV file (contains some non-UTF8 characters) in MongoDb在 MongoDb 中导入 CSV 文件(包含一些非 UTF8 字符)
【发布时间】:2013-10-15 17:21:11
【问题描述】:

如何将包含一些非 UTF8 字符的 CSV 文件导入 MongoDB? 我尝试了推荐的导入代码。

mongoimport --db dbname --collection colname --type csv --headerline --file D:/fastfood.xls

错误信息

exception: Invalid UTF8  character detected

我会手动删除那些无效字符,但是数据的大小相当大。

尝试谷歌没有成功。

PS:mongo -v = 2.4.6

谢谢。

编辑: 顺便说一句,我在Win7上

【问题讨论】:

    标签: mongodb csv utf-8 data-import database


    【解决方案1】:

    在 Linux 中,您可以按照以下建议使用 iconv 命令:How to remove non UTF-8 characters from text file

    iconv -f utf8 -t utf8 -c file.txt

    我不熟悉 MongoDB,所以我不知道如何在导入过程中保留无效字符。

    【讨论】:

    • 在 Win 上也可以吗?如果我在 CMD 上写“iconv”,它就不起作用。 (iconv 不被识别为内部或外部命令)
    • 我觉得可以在这里下载windows的iconv命令:sourceforge.net/projects/gettext
    • 我们如何从 windows 中的 .csv 文件中删除无效的 UTF-8 字符?
    • iconv -f UTF-8 -t UTF-8 files_with_non_utf8_chars.csv > out.csv
    【解决方案2】:

    对于 emacs 用户: 在 emacs 中打开 CSV 文件并使用“C-x C-m f”更改编码并选择 utf-8 作为编码系统。欲了解更多信息,请参阅ChangingEncodings

    【讨论】:

      【解决方案3】:

      您正在尝试将xls 文件导入为csv 文件。先将文件另存为csv,然后重试。

      【讨论】:

      • 您得到了想要的结果(成功导入)还是同样的 UTF-8 错误?您是如何将文件从 xls 转换为 csv 的?
      • 我的意思是我得到了相同的结果 - 错误。我刚刚将文件保存为“csv”。没有使用任何工具或其他东西来转换它。
      • 假设它现在是一个有效的 csv 文件(例如,当您打开类似 Notepad++ 的文件时可以看到数据),那么您确实有一些奇怪的 unicode 问题。您需要先对文件进行预处理,然后才能将其加载到 Mongo 中。我会使用 Python 来做到这一点;我不知道使用 PowerShell 的直接方法。
      • 仅仅因为它有 .xls 后缀并不意味着它是一个 excel 文件。很多应用程序输出 csv/tsv 并给它加上后缀。在记事本中查看。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2016-11-03
      相关资源
      最近更新 更多