我有这堂课:
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脚本使用相同的文件,因此它不应该是一个损坏/错误的文件。
答案 0 :(得分:0)
问题是,我使用''
作为我的字符串。使用""
时,零字节被正确解释。