Как сохранить смайлики в формате 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. Это может быть не совсем эффективным, учитывая, что строка становится намного больше, но это должно решить проблему.