При отладке проблемы при написании BMP с использованием двоичных данных с помощью Lua я столкнулся со странным Проблема в том, что вводились некоторые байты.
Когда мы пишем 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?
\n
0x0A в родное системное представление новой строки. Под Windows это\r\n
! прочитайте это en.wikipedia.org/wiki/Newline - person Piglet   schedule 07.04.2021io.open
упоминает бинарный режим. поскольку вы используете io.open, вы должны попытаться понять, что это значит, прежде чем использовать io.open. быстрое веб-исследование показывает, что возврат каретки будет добавлен в Windows, если вы не используете этот режим. - person Piglet   schedule 08.04.2021