Как сохранить смайлики в формате URL в виде текста (например, "%F0%9F%98%80") в Postgres? (ROR)

Я изо всех сил пытаюсь сохранить закодированный эмодзи как текст.

Я использую 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 (текст)? Или это довольно активная запись связана? Я даже не уверен, где проблема, и решения от других баз данных или языков, кажется, не имеют никакого смысла в моей ситуации.

Не совсем ответ на мой вопрос, но большая помощь в другом направлении - найти способ закодировать обратно юникод в url_encoding (чтобы я мог сохранить его в декодированном виде и снова закодировать перед использованием).

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

Спасибо заранее!

1 ответ

Хотя я не уверен, почему Postgre не будет принимать смайлики, я могу предложить вам просто закодировать текст как base64. Это может быть не совсем эффективным, учитывая, что строка становится намного больше, но это должно решить проблему.

Другие вопросы по тегам