2012-02-24 3 views
3

Есть ли способ использования Net :: SFTP библиотеки в Руби (API Link), чтобы установить режим передачи двоичных файлов? К счастью, в системе Windows я загружаю файл UTF-8 в систему Unix. Библиотека ruby, по-видимому, использует Text как режим передачи по умолчанию и заставляет мою кодировку искажать ANSI. Если я могу заставить двоичный режим, UTF-8 должен оставаться в такте.Net :: Режим передачи SFTP (Binary против текста)

Спасибо

ответ

4

Я думаю, что нашел обходное решение.

Раньше мы делали что-то вроде этого:

sftp.file.open(filename) do |f| 
    f.puts(data) 
end 

Мы изменили это использовать объект StringIO, например, так:

require 'stringio' 
io = StringIO.new(data) 
sftp.upload!(io, filename) 

Использование загрузки! метод, похоже, уважает кодирование, поскольку он просто копирует байты.

Надеюсь, что это поможет.

+0

Я больше не в системе Windows, но, насколько я могу судить, это работает! Благодаря! – wmarbut

+0

Работает для меня. Благодаря! –