2

如果我尝试将压缩字节作为 unsigned int32 写入文件,使用pack('L'),该数字10将写入五个字节。使用任何其他数字,我都会得到正常行为。

我写了简单的脚本:

x = 0
while x < 100 do
    puts "\nTesting %s..." % [x]
    h = [x].pack('L')
    puts "h length: %s" % [h.length]
    f = File.open('tmp', 'w')
    f.write h
    puts "position: %s" % [f.pos]
    x += 1
end

并得到这个结果;查看第 10 次迭代。

我的错误在哪里?

Ruby 版本:ruby 1.9.3p327 (2012-11-10) [i386-mingw32]

4

1 回答 1

4

这是换行符翻译问题(特定于 Windows):字节 10 被翻译为 CR+LF。

我不知道红宝石,但openwb而不是w可能会有所帮助。

于 2013-01-24T18:44:24.893 回答