我想somefile
使用base64
File.open('data/somefile.edf').read.encoding
=> #<Encoding:UTF-8>
base64_string = Base64.encode64(open("data/somefile.edf").to_a.join)
然后我要解码该文件
file = open('new_edf.edf', 'w') do |file|
file << Base64.decode64(base64_string)
end
但是我收到了一个错误:
Encoding::UndefinedConversionError: "\xE1" from ASCII-8BIT to UTF-8
from (pry):22:in `write'
答案 0 :(得分:0)
我认为问题在于默认情况下会打开文件以便以文本模式进行写入。要解决此问题,请使用二进制模式打开文件:
char_list = list(my_string)
您还可以查看其他问题:Ruby 1.9 Base64 encoding write to file error