Lua write 输出奇怪的字节到文件

Lua write outputs strange byte to file

在使用二进制数据 Lua 调试问题 时,我 运行 在 st运行ge 问题上引入了一些字节。

当我们写入string.char(10)时,字节0x0D0A出现。

local file = io.open("forbchars.bin","w")

local out = {}
for i=1,255 do
    out[#out+1] = string.char(i)
    out[#out+1] = string.char(255)
end

file:write(table.concat(out))

如果您使用十六进制编辑器检查此文件,您会看到 0x0D0A 字节而不是 0x0A (10)。

如何预防?这是 Lua 的错误吗?

用Lua写入二进制数据时使用二进制开关"wb":

local file = io.open("forbchars.bin","wb")
local out = {}
for i=1,255 do
    out[#out+1] = string.char(i)
    out[#out+1] = string.char(255)
end
file:write(table.concat(out))