ruby-on-rails – 如何为FasterCSV预处理CSV数据?

我们在为小应用程序创建批量上传功能时遇到了大量问题.我们正在使用FasterCSV gem将数据上传到MySQL数据库,但他更快的CSV在其要求中是如此抽象和精确,以至于它经常因格式错误的CSV错误和超时错误而中断.

csv文件通常是由用户从他们的网站或Microsoft Word文档粘贴文本创建的,因此期望数据中永远不会出现诸如智能引号或重音之类的奇怪字符是不合理的.此外,用户无法轻易识别他们的数据是否足以满足FasterCSV的要求.我们需要找到一种方法来自动修复它们.

在使用FasterCSV gem进程之前,是否有一种好的方法或可靠的工具来预处理CSV数据以修复数据中的任何nits?

最佳答案
在创建FasterCsv解析器的新实例时,您可以将文件的编码类型传递到FasterCSV选项中. (见文档:http://fastercsv.rubyforge.org/classes/FasterCSV.html#M000018)

将其设置为utf-8或Microsoft编码应该让它通过大多数狡猾的额外字符,允许它实际解析为您所需的字符串…然后您可以清除字符串到您心脏的内容.

在你可以传递的关于“转换器”的文档中也有一些东西 – 虽然这更多地是为了转换数字或日期类型,你可以使用它来为gsub提供狡猾的字符.

转载注明原文:ruby-on-rails – 如何为FasterCSV预处理CSV数据? - 代码日志