1

CSVファイルを生成してWindowsを使用している多数のユーザーに電子メールで送信するスクリプトがあります。列の1つに改行があり、生成されたファイルを開くと、改行の前に四角いボックスが表示されます。これが私がやろうとしていることのコードの例です:

CSV.open("/tmp/reports.csv", "w") do |csv|
  csv << ["Date", "Description", "Comments", "Status"]
  csv << ["Foo","Bar","This\r\n is \r\n where \r\n my \r\n linebreaks \r\n are,"Baz"]
end

考えられる改行とエンコーディングの組み合わせをいくつでも試しましたが、喜びはありません。これはこの問題に関連していると思われますが、解決策には、インポート後に何かを実行することが含まれます。特に、ここでは技術ユーザーを扱っていないため、ユーザーをサドルしたくありません。

何か案は?

4

1 に答える 1

0

\ rをgsubbingしてみてください:

csv << ["Foo","Bar","square \r\n here","Baz"].map{|col| col.gsub(/\r/, '')}
于 2012-10-20T02:32:15.283 に答える