Question

Is there a way using the Net::SFTP Library in Ruby (API Link) to set the Transfer Mode to Binary? I am unforunately on a windows system and am uploading a UTF-8 file to a Unix system. The ruby library apparently using Text as the default Transfer Mode and causing my encoding to get garbled with ANSI. If I can force Binary mode the UTF-8 should remain in tact.

Thanks

Was it helpful?

Solution

I think I found a workaround.

Before, we were doing something like this:

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

We changed this to use a StringIO object, like so:

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

Using the upload! method seems to respect the encoding as it just copies the bytes.

Hope that helps.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top