阅读 Ruby 中的 PostgreSQL Bytea 专栏

Read PostgreSQL Bytea column in Ruby

我正在尝试使用 Ruby 从 PostgreSQL 读取 bytea 列。 问题是它 return 是 bytea 值的十六进制编码字符串。 我希望它 return 与我用 File.read().

打开内容相同的二进制文件完全一样

下面给出了十六进制编码的值:

require 'pg'

conn = PG.connect(...)
res  = conn.exec('SELECT bytea_column FROM some_table')
res.each do |r|
    raw = r['bytea_column']
    puts "#{raw}"
end

我想我需要使用 PG::TextDecoder::Bytea 来正确解码 bytea 列。这个对吗?如果是这样,应该如何使用它?

谢谢大家,但我想通了。答案是PG::Connection.unescape_bytea:

require 'pg'

conn = PG.connect(...)
res  = conn.exec('SELECT bytea_column FROM some_table')  
res.each do |r|
    raw = r['bytea_column']
    binary_data = PG::Connection.unescape_bytea(raw)
    puts "#{binary_data}"
end