从 Postgres 到 Rails 的哈希转换
Hash Conversion from Postgres to Rails
我不确定我从 postgres 数据库返回的是什么类型的编码哈希,当查询时显示不同的代码。
问题是...
如何转换此散列(因为它是从 Rails 返回的):
\x158\x06\xDB\xCD\x13M\xDE\xE6\x9A\x8CR\x04\xE3\x8A\xC8\x04H\xF6#B\xF8\xC2<\xFEK~\xDF
进入这个(如它在 postgres 数据库中显示的那样):
\x153806dbcd134ddee69a8c5204e38ac80448f62342f8c23cfe4b7edf
第一个散列(如您所说,来自 Rails)是一个字节数组,其中任何 printable 字符都保留原样,而不是转换为十六进制:\x158
实际上是两个字符:'\x15'
和 '\x38'
('8'
).
在 Postgres table 中,字节数组是相同的,但格式是 hexlify 整个东西。
所以:
\x158\x06\xDB\xCD\x13M... is really \x15,8,\x06,\xDB,\xCD,\x13,M
-- becomes
\x153806dbcd134d... ('8':\x38, 'M':\x4d)
我不确定我从 postgres 数据库返回的是什么类型的编码哈希,当查询时显示不同的代码。
问题是...
如何转换此散列(因为它是从 Rails 返回的):
\x158\x06\xDB\xCD\x13M\xDE\xE6\x9A\x8CR\x04\xE3\x8A\xC8\x04H\xF6#B\xF8\xC2<\xFEK~\xDF
进入这个(如它在 postgres 数据库中显示的那样):
\x153806dbcd134ddee69a8c5204e38ac80448f62342f8c23cfe4b7edf
第一个散列(如您所说,来自 Rails)是一个字节数组,其中任何 printable 字符都保留原样,而不是转换为十六进制:\x158
实际上是两个字符:'\x15'
和 '\x38'
('8'
).
在 Postgres table 中,字节数组是相同的,但格式是 hexlify 整个东西。
所以:
\x158\x06\xDB\xCD\x13M... is really \x15,8,\x06,\xDB,\xCD,\x13,M
-- becomes
\x153806dbcd134d... ('8':\x38, 'M':\x4d)