我試圖解碼這個文件是在IBM437
到可讀UTF
我在我認爲我幾乎得到它的點,但我得到一個ArgumentError
其中字符串包含nul
字節,我知道如何gsub
出nul
字節使用: .gsub("\u0000", '')
但是我不知道在哪裏gsub
的字節出來。字符串包含NUL字節
這裏的源:
def gather_info
file = './lib/SETI_message.txt'
File.read(file).each_line do |gather|
packed = [gather].pack('b*')
ec = Encoding::Converter.new(packed, 'utf-8')
encoding_forced = packed.encode(ec)
File.open('packed.txt', 'a+'){ |s| s.puts(encoding_forced.gsub("\u0000", '')) }
end
end
gather_info
而這裏的file
誰能告訴我,我做錯了什麼嗎?
爲什麼不在你的'File'上設置'encoding'選項? – tadman
@tadman你是什麼意思?' – 13aal
看起來像[相當有趣的挑戰](http://www2.mps.mpg.de/homes/heller/downloads/files/SETI_rules.txt),但是您嘗試解碼爲IBM437的錯誤軌道上。看看給出的提示。 – matt