string - 在 Lua 中将字符串写入二进制

标签 string lua binary

我在 Lua 中将字符串写入二进制文件时遇到问题。有一个现有示例,我尝试修改它。看一看:

function StringToBinary()
  local file = io.open("file.bin", "wb")
  local t = {}
  local u = {}
  local str = "Hello World" 
  file:write("string len = " ..#str ..'\n')
  math.randomseed(os.time())
  for i=1, #str do
    t[i] =  string.byte(str[i])
    file:write(t[i].." ");   
  end  
  file:write("\n")
  for i=1, #str do 
    u[i] = math.random(0,255) 
    file:write(u[i].." ");
  end
  file:write("\n"..string.char(unpack(t)))
  file:write("\n"..string.char(unpack(u)))
  file:close()
end

file:write(t[i].."")file:write(u[i].."") 用整数值写入两个表.然而,在我的最后两篇文章中:unpack(t) 显示原始文本,而 unpack(u) 显示二进制文件。

可能是 string.byte(str[i]) 弄错了。我应该用什么来代替它?我错过了什么吗?

最佳答案

t[i] =  string.byte(str[i])

错了,应该是:

t[i] =  string.byte(str, i)

关于string - 在 Lua 中将字符串写入二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698504/

相关文章:

string - 在 bash 中,如何将 N 个参数连接在一起作为空格分隔的字符串

swift - 改变字符串扩展导致巨大的 CPU 影响

c - 使用套接字发送/接收/操作字符串

c++ - 使用具有最少 C++/SWIG/Lua 代码的共享 dll 的链接错误

sql - 在 postgresql 查询中检查 bool 值 true/false 结果

php - mysql 在 utf8_general_ci 中区分大小写

string - 在Hibernate中将String转换为Clob,反之亦然

delphi - 让 arg 在 Lua 5.2 中的 varag 函数中工作(集成在 Delphi 中)

java - 将二进制字符串转换为ASCII文本?

javascript - 如何通过 JavaScript 将二进制(输入)转换为字符串(输出)