如何在 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”)? (罗尔)的主要内容,如果未能解决你的问题,请参考以下文章
如何在sails.js 或通常在服务器端JavaScript 中将图像转换为base64 编码的数据URL?