6

小さなアプリの一括アップロード機能を作成する際に、かなりの問題が発生しています。私たちは FasterCSV gem を使用してデータを MySQL データベースにアップロードしていますが、Faster CSV は要件が非常に細かく正確であるため、不正な形式の CSV エラーやタイムアウト エラーで常に中断されます。

csv ファイルは通常、ユーザーが Web サイトまたは Microsoft Word ドキュメントからテキストを貼り付けることによって作成されるため、スマート クォートやアクセントなどの奇妙な文字がデータに含まれないと期待するのは合理的ではありません。また、ユーザーは自分のデータが FasterCSV に十分に適しているかどうかをすぐに判断できなくなります。それらを自動的に修正する方法を見つける必要があります。

FasterCSV gem で処理する前に、CSV データを前処理してデータ内のニットを修正するための良い方法または信頼できるツールはありますか?

4

3 に答える 3

1

FasterCsv パーサーの新しいインスタンスを作成するときに、ファイルのエンコード タイプを FasterCSV オプションに渡すことができます。(こちらのドキュメントを参照してください: http://fastercsv.rubyforge.org/classes/FasterCSV.html#M000018 )

utf-8またはMicrosoftエンコーディングに設定すると、ほとんどの危険な余分な文字が通過し、実際に必要な文字列に解析できるようになります...その後、文字列を心ゆくまできれいにすることができます.

ドキュメントには、渡すことができる「コンバーター」に関するものもあります。これは、数値型や日付型などの変換を目的としていますが、危険な文字の gsub に使用できる可能性があります。

于 2010-03-12T14:42:07.023 に答える
1

smarter_csv Gem を試してみてください。ブロックをプロセス メソッドに渡し、使用前にデータをクリーンアップできます。

https://github.com/tilo/smarter_csv

于 2012-07-30T05:59:57.027 に答える