如何在Postgres中将url编码的表情符号保存为文本(例如“%F0%9F%98%80”)? (ROR)

时间:2015-07-17 11:43:17

标签: postgresql encoding emoji ruby-on-rails-4.1 ruby-2.2

我正在努力将url编码的表情符号保存为文本。

我使用PostgreSQL,Ruby 2.2.2,Rails 4.1.9。要编码/解码表情符号,我使用ERB :: Util模块http://ruby-doc.org/stdlib-2.2.2/libdoc/erb/rdoc/ERB/Util.html

保存此

   "%F0%9F%98%80"

对此

的更改
   "f09f9880"

是否与postgres列类型(文本)相关联?或者它是相当活跃的记录连接?我甚至不确定问题出在哪里,其他dbs或语言的解决方案在我的情况下似乎没有任何意义。

不是我的问题的答案,但在不同方向的一个很大的帮助是找到一种方法将unicode编码回url_encoding(所以我可以保存它解码并在使用之前再次编码)。

     "f09f9880" => "%F0%9F%98%80"

非常感谢提前!

1 个答案:

答案 0 :(得分:2)

虽然我不确定为什么Postgre不接受表情符号,但我可以建议您只将文本编码为base64。这可能不是很有效,因为字符串变得更大,但它应该解决问题。