Net :: SFTP传输模式(二进制与文本)

时间:2012-02-24 23:03:30

标签: ruby sftp net-sftp

有没有办法在 Ruby API Link)中使用 Net :: SFTP 库将传输模式设置为二进制?我不幸在Windows系统上将UTF-8文件上传到Unix系统。 ruby库显然使用Text作为默认的传输模式,并导致我的编码被ANSI乱码。如果我可以强制二进制模式,UTF-8应该保持原状。

由于

1 个答案:

答案 0 :(得分:4)

我想我找到了解决方法。

之前,我们做过这样的事情:

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

我们将其更改为使用StringIO对象,如下所示:

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

使用上传!方法似乎尊重编码,因为它只复制字节。

希望有所帮助。