我正在尝试使用gmail
gem从我的Gmail帐户下载图片。它工作正常,除了通过gem下载的文件有CR + LF
行结尾,实际文件有LF
行结尾。
为什么会这样?我该如何解决?
答案 0 :(得分:1)
你在Mac上吗?我怀疑GMail会为您提供基于浏览器用户代理的LF线路结尾。
在任何情况下,问题的正确解决方案是使用universal_newline
转换器转换文本。请参阅此处的ruby内置转换器文档:http://ruby-doc.org/core-1.9/classes/Encoding/Converter.html
答案 1 :(得分:1)
如果是文本文件,则行结尾由MIME指定,编码可能由文件的发件人(http://en.wikipedia.org/wiki/MIME#Content-Transfer-Encoding)进行。
至于如何修复它,Alex Lebedev有一个很好的选择。您也可以使用Ruby MIME gems进行转换。
但是,如果要下载图像,Base64编码应该能够适应行尾问题。
希望有所帮助。这个问题对我来说有点模糊,因为我们正在讨论行结尾和图像文件(它们没有CRLF结尾作为其编码的正常部分)。 :)
答案 2 :(得分:0)
最简单的解决方法可能是取结果而不是:
text.gsub! "\r\n", "\n"