String 如何在Lua中将UUID从二进制格式转换为字符串格式?

String 如何在Lua中将UUID从二进制格式转换为字符串格式?,string,lua,uuid,String,Lua,Uuid,我的Lua程序中有一个二进制格式的UUID(字符串中只有16个字节)。我需要将其转换为字符串格式,例如550e8400-e29b-41d4-a716-446655440000 如何转换它?这里有一个程序可以将2字节的字符串转换为十六进制格式: local str = "\x55\x0e" local result = string.format("%02x%02x", string.byte(str, 1, 2)) print(result) 输出:550e string.byte获取字符的内

我的Lua程序中有一个二进制格式的UUID(字符串中只有16个字节)。我需要将其转换为字符串格式,例如
550e8400-e29b-41d4-a716-446655440000


如何转换它?

这里有一个程序可以将2字节的字符串转换为十六进制格式:

local str = "\x55\x0e"
local result = string.format("%02x%02x", string.byte(str, 1, 2))
print(result)
输出:
550e

string.byte
获取字符的内部数字表示形式,然后使用
string.format
获取十六进制格式


您可以自己扩展它来转换UUID。

下面是一个将2字节字符串转换为十六进制格式的程序:

local str = "\x55\x0e"
local result = string.format("%02x%02x", string.byte(str, 1, 2))
print(result)
string.format("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", string.byte(str,1,16))
输出:
550e

string.byte
获取字符的内部数字表示形式,然后使用
string.format
获取十六进制格式

您可以自己扩展它来转换UUID

string.format("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", string.byte(str,1,16))