2010-03-09 66 views
6

我们在为我们的小应用创建批量上传功能时遇到了很多问题。我们使用FasterCSV gem将数据上传到MySQL数据库,但他更快的CSV在它的要求中非常灵敏和精确,以至于它不断打破格式错误和超时错误。如何预处理FasterCSV的CSV数据?

csv文件通常是由用户从他们的网站或Microsoft Word文档粘贴文本创建的,所以期望在数据中不会有像智能引号或重音符号这样的奇怪字符是不合理的。此外,用户不会很快就能够确定他们的数据是否足够完美,以满足FasterCSV的要求。我们需要找到一种方法来自动修复它们。

有没有一种好的方法或可靠的工具来预处理CSV数据,以修复FasterCSV gem过程中的数据中的任何小数点?

+0

这真的取决于之前。你遇到什么样的错误? – 2010-03-09 21:39:35

+0

主要来自Word的智能引号和偶尔重音字符或来自Word或HTML的特殊字符。有时候是流浪的子弹。只是将多个文本段落粘贴到Excel单元格时得到的正常材料。 – 2010-03-11 14:44:48

回答

1

在创建FasterCsv分析器的新实例时,您可以将文件的编码类型传递到FasterCSV选项。 (请参阅文档:http://fastercsv.rubyforge.org/classes/FasterCSV.html#M000018

将其设置为utf-8或Microsoft编码应该使其通过最不友好的额外字符,从而允许它实际解析到所需的字符串中......然后您可以将字符串清理为您的心的内容。

还有一些关于您可以传入的“转换器”的文档中 - 虽然这更多地针对转换,比如数字或日期类型,但您可以将它用于gsub以供狡猾的字符使用。

+0

非常感谢!我们会尝试。 – 2010-03-13 15:55:50