Проблемы с концом строки - PullRequest
1 голос
/ 11 апреля 2011

Я пытаюсь загрузить изображения из своей учетной записи Gmail, используя гем gmail.Он работает нормально, за исключением того, что файл, загруженный через гем, имеет CR + LF окончания строк, а сам файл имеет LF окончания строк.

Почему это происходит?Как я могу это исправить?

Ответы [ 3 ]

1 голос
/ 11 апреля 2011

Вы на Mac?Я подозреваю, что GMail дает вам LF-окончания строк, видя основание в User-Agent вашего браузера.

В любом случае, правильное решение проблемы - конвертировать текст с помощью конвертера universal_newline.См. Документацию по встроенным конвертерам ruby ​​здесь: http://ruby -doc.org / core-1.9 / classes / Encoding / Converter.html

1 голос
/ 12 апреля 2011

Если это текстовый файл, то окончания строк задаются MIME и, возможно, кодировка выполняется отправителем файла (http://en.wikipedia.org/wiki/MIME#Content-Transfer-Encoding).

Что касается того, как это исправить, у Алексея Лебедева был хороший вариант. Вы также можете использовать камни Ruby MIME для конвертации.

Однако при загрузке изображений кодировка Base64 должна быть устойчивой к проблемам конца строки.

Надеюсь, это поможет. Проблема немного расплывчата для меня, поскольку мы говорим об окончаниях строк и файлах изображений (которые не имеют окончания CRLF в качестве обычной части их кодирования). :)

0 голосов
/ 11 апреля 2011

Самое простое решение - взять результат и просто:

text.gsub! "\r\n", "\n"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...