2012-02-24 256 views
3

是否有使用的Net :: SFTP庫的方式在紅寶石API Link)到傳輸模式設置爲二進制?我在Windows系統上不幸運,並且正在將UTF-8文件上傳到Unix系統。 ruby庫顯然使用Text作爲默認傳輸模式,並導致我的編碼與ANSI混淆。如果我可以強制使用二進制模式,UTF-8應該保持機密。的Net :: SFTP傳輸模式(二進制VS文本)

謝謝

回答

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 2012-06-14 20:38:20

+0

適合我。謝謝! – 2016-12-27 20:38:01