2011-04-11 23 views
1

我試圖使用gmail寶石從我的Gmail帳戶下載圖像。它工作正常,除了通過gem下載的文件有CR + LF行結束符和實際文件有LF行結束符。行尾問題

這是怎麼發生的?我該如何解決它?

回答

0

的簡單的解決辦法可能是把結果和簡單:

text.gsub! "\r\n", "\n" 
+0

嘗試了大約一百萬種不同的方式。似乎只會使問題惡化。 – RyanScottLewis 2011-04-11 16:51:44

+0

@ c00lryguy我建議你在一個小樣本上用'inspect'的輸出來編輯你的問題。我上面發佈的內容會將CRLF轉換爲LF,所以這可能不是你的問題。 – Phrogz 2011-04-11 17:03:46

+0

我的問題是,當我從文件中下載附件時,該文件與通過'gmail'或'ruby-gmail'下載時的文件不同。gem – RyanScottLewis 2011-04-11 17:10:46

1

如果它是一個文本文件,然後行尾被MIME規定,可能的編碼由文件(http://en.wikipedia.org/wiki/MIME#Content-Transfer-Encoding)的發送者發生。

至於如何解決它,亞歷克斯列別傑夫有一個很好的選擇。您也可以使用Ruby MIME gems來進行轉換。

但是,如果您正在下載圖片,則Base64編碼應該適用於行尾問題。

希望有所幫助。這個問題對我來說有點模糊,因爲我們正在談論行結尾和圖像文件(它們沒有將CRLF結尾作爲其編碼的正常部分)。 :)