将编码的 GUID 转换为字符串格式

Convert Encoded GUID to String Format

我正在使用 Javascript 查询存储 GUID 的 Sqlite3 数据库。但是我无法将编码值转换为已知的 GUID 值。

当以字符串值形式查看时,原始格式的值显示为“�ո�+�A�I9���W”。但我知道真正的价值应该是 'ddb8d5b7-182b-419c-a449-1d391fb18757'.

我不知道从哪里开始确定合适的编码。

非常感谢 詹姆斯

根据 Mahmoud Al-Qudsi 的 blog post,从 Sqlite 中 UUID 的 16 字节 BLOB 表示到字符串表示的转换如下所示:

SELECT
  substr(hguid, 7, 2) || substr(hguid, 5, 2) 
  || substr(hguid, 3, 2) || substr(hguid, 1, 2) || '-'
  || substr(hguid, 11, 2) || substr(hguid, 9, 2) || '-'
  || substr(hguid, 15, 2) || substr(hguid, 13, 2) || '-'
  || substr(hguid, 17, 4) || '-'
  || substr(hguid, 21, 12)

AS guid

FROM (SELECT hex(guid) AS hguid FROM messages)