Lua字节码中字符串开头后的三个空字符?

Lua字节码中字符串开头后的三个空字符?,lua,bytecode,Lua,Bytecode,我在读Lua字节码。我知道字符串以长度开头,然后存储字符串。然后字符串以空字符结尾。然而,我有一个问题。它表示字符串长度为124,包括结尾的空字符。但是,字符串前面(长度之后)有三个空字符。这使得字符串的实际长度为127 有人知道为什么会这样吗 谢谢。您发布的字节码以 \27\76\117\97\81\0\1\4\4\4\8\0\124\0\0\0... 还是用十六进制 0000000: 1b4c 7561 5100 0104 0404 0800 7c00 0000 .LuaQ.......

我在读Lua字节码。我知道字符串以长度开头,然后存储字符串。然后字符串以空字符结尾。然而,我有一个问题。它表示字符串长度为124,包括结尾的空字符。但是,字符串前面(长度之后)有三个空字符。这使得字符串的实际长度为127

有人知道为什么会这样吗


谢谢。

您发布的字节码以

\27\76\117\97\81\0\1\4\4\4\8\0\124\0\0\0...
还是用十六进制

0000000: 1b4c 7561 5100 0104 0404 0800 7c00 0000  .LuaQ.......|...
0000010: 3d70 7269 6e74 2828 2727 292e 6475 6d70  =print(('').dump
字符串的长度不是一个字节,而是四个字节
7c00 0000

通常,用于表示字符串长度的字节数是第一行偏移量8处的第二个
04


请参见代码中的。

是否每个字符串都会发生这种情况?也许一些代码会有所帮助。我相信字符串是顶级函数中的源名称(因为它似乎位于那里),但字符串是字节码的实际源。如果你愿意,我可以给你看字节码。包括一些字节码的十六进制转储肯定会有帮助,不仅仅是我。下面是字节码:。我现在不能把它扔了,因为我在打电话。哦,这更有意义。非常感谢你!