3

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

谢谢

4

1 回答 1

4

我想我找到了解决方法。

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

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

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

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

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

希望有帮助。

于 2012-06-14T13:26:06.597 回答