在为我们的小应用创建批量上传功能时,我们遇到了很多问题。我们正在使用FasterCSV gem将数据上传到MySQL数据库,但是他的Faster CSV如此棘手且精确,其要求会不断因格式错误的CSV错误和超时错误而中断。
通常,csv文件是由用户从其网站或Microsoft Word文档中粘贴的文本创建的,因此,期望数据中绝不会出现诸如智能引号或重音符之类的奇数字符是不合理的。此外,用户将无法轻易确定其数据对于FasterCSV是否足够完美。我们需要找到一种自动为他们修复的方法。
是否有一种好的方法或可靠的工具,可以在对FasterCSV gem进行处理之前,对CSV数据进行预处理以修复数据中的任何异常现象?
最佳答案
创建FasterCsv解析器的新实例时,可以将文件的编码类型传递到FasterCSV选项中。 (请参阅此处的文档:http://fastercsv.rubyforge.org/classes/FasterCSV.html#M000018)
将其设置为utf-8或Microsoft编码应该可以使它避开大多数晦涩的多余字符,从而使其能够实际解析为所需的字符串……然后您就可以根据自己的喜好清理字符串了。
您还可以在文档中传递一些有关“转换器”的信息-尽管它更多地用于转换数字或日期类型,但您仍可以将其用于gsub来代替狡猾的字符。
关于ruby-on-rails - 如何为FasterCSV预处理CSV数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2411770/