【问题标题】:ruby writing content of attachment to file gives me additional new line chractersruby 将附件内容写入文件给了我额外的换行符
【发布时间】:2015-05-22 13:20:38
【问题描述】:

我正在尝试将附件从 gmail 保存到本地磁盘。我正在使用 gmail gem 并按照说明操作:

gmail.mailbox("Faxes").emails.each do |email|
  email.message.attachments.each do |f|
    File.write(File.join(folder, f.filename), f.body.decoded)
  end
end

问题是当我在记事本 ++ 中打开文件时,我在每行添加新行字符后看到。如果我尝试添加

puts f.body.decoded

在保存文件之前,输出看起来没问题(没有额外的换行符)。

我尝试了不同的方法来将内容保存到文件,但结果总是相同。 我在 Win7 上安装了 ruby​​ 1.9.3。 不确定这是否与 ruby​​、gmail gem 或 Win7 区域设置有关。请帮忙。

【问题讨论】:

  • 您应该查看 gem 的有关 ENCONDING 的文档。您可以检查您的系统在 irb 中编码:<?> __ENCODING__
  • 我尝试在脚本的开头更改编码,同时保存文件的内容但它不起作用

标签: ruby io


【解决方案1】:

Ruby 'puts' 添加了一个换行符。如果您可以使用“打印”代替,则不会有新行。详情请见puts vs print

【讨论】:

  • 是的,我知道问题是我有文本:Line1 Line2,但保存文件后我有:Line1 <CR> Line2
猜你喜欢
  • 1970-01-01
  • 2014-04-13
  • 2017-05-17
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
相关资源
最近更新 更多