带有空字节的Ruby字符串

时间:2015-08-19 11:14:33

标签: ruby string bytearray

我有这堂课:

class CountedOctet
  attr_reader :length, :data
  def initialize
    @length = nil
    @data = ""
  end
  def parsefile(f)
    @length, = f.read(4).unpack("N")
    @data, = f.read(@length).unpack("a#{@length}")
  end
end

它从https://github.com/rvazarkar/KrbCredExport(在Python中)移植到Ruby。

一切正常,文件被读取,但如果我访问数据则会被切断。它的长度是1163(这是正确的),但在位置152,字符串的字节是0.这似乎终止字符串。位置153是正确的,因此读取和拆包似乎是正确的。有没有办法阻止Ruby在空字节处终止字符串?

python脚本使用相同的文件,因此它不应该是一个损坏/错误的文件。

1 个答案:

答案 0 :(得分:0)

问题是,我使用''作为我的字符串。使用""时,零字节被正确解释。