我正在尝试将文件中的图像数据作为 base64 字符串存储到 PostgreSQL 数据库中,该字符串由 gzip 压缩以节省空间。我正在使用以下代码对图像进行编码:
@file = File.open("#{Rails.root.to_s}/public/" << @ad_object.image_url).read
@base64 = Base64.encode64(@file)
@compressed = ActiveSupport::Gzip.compress(@base64)
@compressed.force_encoding('UTF-8')
@ad_object.imageData = @compressed
当我尝试保存对象时,出现以下错误:
ActiveRecord::StatementInvalid (PG::Error: ERROR: invalid byte sequence for encoding "UTF8": 0x8b
在 rails 控制台中,任何 gzip 压缩都会将数据输出为 ASCII 8 位编码。我尝试将我的内部和外部编码设置为 UTF-8,但结果没有改变。如何将此压缩数据转换为 UTF-8 字符串?