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

Posted

技术标签:

【中文标题】如何在 Postgres 中将 url 编码的表情符号保存为文本(例如“%F0%9F%98%80”)? (罗尔)【英文标题】:How to save url encoded emoji as text (eg "%F0%9F%98%80") in Postgres? (RoR) 【发布时间】:2015-10-07 03:05:02 【问题描述】:

我正在努力将 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 列类型(文本)有关?或者它是相当活跃的记录连接?我什至不确定问题出在哪里,其他数据库或语言的解决方案在我的情况下似乎没有任何意义。

这并不是我问题的真正答案,但另一个方向的一个很大帮助是找到一种将 unicode 编码回 url_encoding 的方法(这样我就可以在使用前将其保存解码并再次编码)。

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

非常感谢!

【问题讨论】:

【参考方案1】:

虽然我不确定 Postgre 为何不接受表情符号,但我可以建议您将文本简单地编码为 base64。考虑到字符串变得更大,这可能并不完全有效,但它应该可以解决问题。

【讨论】:

以上是关于如何在 Postgres 中将 url 编码的表情符号保存为文本(例如“%F0%9F%98%80”)? (罗尔)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中将代理对转换为普通字符串?

如何在sails.js 或通常在服务器端JavaScript 中将图像转换为base64 编码的数据URL?

如何在 Vim 中将表情符号输入到字符串中?

在 django 的 postgres db 中将 json 保存为数组

如何在 Postgres 中将一个类型拆分为多个列?

如何在 Postgres-XL 中将 SEQUENCE 设置为 DEFAULT?