如何打印lua字节码而不将其转换为可读的等价物?

如何打印lua字节码而不将其转换为可读的等价物?,lua,Lua,如何打印字节码(例如\122,相当于小写字母“z”),而不将其转换为可读的等效字符 这是我的密码: 符号={ forwardslash=“\47”, 反斜杠=“\92”, andsymbol=“\38”, starthing=“\42”, hashtag=“\35”, atsymbol=“\64”, dot=“\46”, 逗号=“\44”, 感叹号=“\33”, 问号=“\63”, speechmark=“\34”, InvertedCommand=“\39”, percent=“\37”, 破

如何打印字节码(例如
\122
,相当于小写字母“z”),而不将其转换为可读的等效字符

这是我的密码:

符号={
forwardslash=“\47”,
反斜杠=“\92”,
andsymbol=“\38”,
starthing=“\42”,
hashtag=“\35”,
atsymbol=“\64”,
dot=“\46”,
逗号=“\44”,
感叹号=“\33”,
问号=“\63”,
speechmark=“\34”,
InvertedCommand=“\39”,
percent=“\37”,
破折号=“\45”,
下划线=“\95”,
括号1=“\40”,
括号2=“\41”,
方括号1=“\91”,
方括号2=“\93”,
squiglybracket1=“\123”,
squiglybracket2=“\125”
};
打印(符号.括号1)
代码图像:

使用:

print(string.byte(symbols.bracket1))--prints:40
为了将来的参考,我鼓励您首先看一看的和其他章节的。这是一个很好的文档,真的

“\40”
转换为
”(“
是由于在Lua中如何处理转义序列。请参阅或参阅下面的批处理示例:

print(“”)——打印:(
打印(“\40”)--打印:(
打印(string.char(40))--打印:(
印刷品(40)--印刷品:40
打印(string.byte(“”)——打印:40
打印(string.byte(“\40”)--prints:40
打印(string.format(“%d”,40))--打印:40
打印(\\40)--打印:\40
打印(string.format(“\\%d”,40))--打印:\40
打印(string.format(\\%d),string.byte((“”))--打印:\40
打印(string.format(“\\%d”,string.byte(“\40”))--打印:\40

string.byte()
string.format()
组合用于反斜杠

for k,v in pairs(symbols)
 do
  print(k..'='..string.format("\"\\%s\"",string.byte(v)))
 end
推出

hashtag="\35"
squiglybracket2="\125"
speechmark="\34"
forwardslash="\47"
squarebracket2="\93"
andsymbol="\38"
dash="\45"
squiglybracket1="\123"
exclamation="\33"
bracket2="\41"
backslash="\92"
starthing="\42"
dot="\46"
squarebracket1="\91"
atsymbol="\64"
comma="\44"
invertedcomma="\39"
bracket1="\40"
percent="\37"
underscore="\95"
questionmark="\63"

感谢您的回答,但是我如何才能只打印表中的一个字节码而不在开头和结尾添加语音标记呢?只需删除这两个字节码,使其看起来像
“\\%s”
…并使用不带k和v的单次打印,并用I.e.library.symbols.dot
print(string.format(\\%s),string.byte)替换v(library.symbols.dot))
不,我实际上意识到它是小写的z@BlankDank,这有什么问题?这正是它在本例中应该打印为
符号的内容。括号1
“\40”
,它是一个转义的
”(“
它又是十进制的
40
。这就是转义序列的工作原理。如果您需要其他内容,请格式化它或完全跳过转义序列。@BlankDank,添加了一个可能使您更容易理解的示例。