在 Postgresql 中用于转换 uuid::text 的算法是什么?

What is the algorithm used for converting uuid::text in Postgresql?

postgresql 中的一个 table,其中一列是 uuid,因为 BYTEA 正在导出到 tsv。

例如 uuid 是:625c3430-34d0-43eb-b85d-e3bd1d9f82e1 导出的值是:b\4040C30]355721.

转换 uuid::text 以及从文本到 uuid 的反向功能背后的算法是什么。 我必须阅读此 tsv,从其文本表示中解码 uuid,并根据解码后的 uuid "do additional stuff"。

Java 中有一些库吗?还是我需要为它编写自己的解码器? 如果我必须编写自己的解码器,欢迎提供有关算法的任何提示。

将您的初始 uuid 转换为字节数组。检查字节数组的每个元素,如果值为:

0 => "\000"

39 => "\047"

或 ''''(单引号)

92 =>“\”或“\134”(反斜杠)

31 < 值 < 127 => 值

中的字符

任何其他是“\xxx”八进制值。

你有你的 "text representation" uuid。

要从 "text representation" 获取 uuid,只需执行相反的步骤即可。