有没有办法在 Ruby (API Link)中使用 Net :: SFTP 库将传输模式设置为二进制?我不幸在Windows系统上将UTF-8文件上传到Unix系统。 ruby库显然使用Text作为默认的传输模式,并导致我的编码被ANSI乱码。如果我可以强制二进制模式,UTF-8应该保持原状。
由于
答案 0 :(得分:4)
我想我找到了解决方法。
之前,我们做过这样的事情:
sftp.file.open(filename) do |f|
f.puts(data)
end
我们将其更改为使用StringIO对象,如下所示:
require 'stringio'
io = StringIO.new(data)
sftp.upload!(io, filename)
使用上传!方法似乎尊重编码,因为它只复制字节。
希望有所帮助。