我在ETL脚本中使用iconv实用程序将mongo生成的csv文件转换为将字符集转换为utf-8,然后再将它们加载到mysql中。
有时,实用程序会修改一列,同时将csv转换为utf-8
\N|SC|XYZ|false|\N|ABC|XYZ|XXX|123|XYZ|\N|\N|123|123|NC|\N|123||||||false||\N
\N|SC|XYZ|false|\N|ABC|XYZ|XXX|123|XYZ|\N|123|123|NC|\N|123||||||false||\N
用于转换的命令:
iconv -c -f us-ascii -t UTF-8 abc-raw.csv >> abc.csv
正如您在上面的示例中看到的那样,在转换后修剪了一个额外的空列( \ N ),这不是常规行为,它仅在某些天发生。它也不是特定于环境的。它发生在特定夜晚的所有服务器上。如果我回去看原始csv它不包含任何应该被修剪的非UTF-8字符。
任何人都可以解释我有没有办法缓解这个问题,提前谢谢。
还建议我是否有更好的工具将csv转换为UTF-8,然后再将它们加载到mysql中