【问题标题】:To emoji or not to emoji?表情符号还是不表情符号?
【发布时间】:2014-03-27 22:40:43
【问题描述】:

我终于找到了一种方法来解决我的 Rails 4 应用程序中用户输入中的表情符号问题。它导致“不正确的字符串值”错误。

解决方案是在 DB encoding*collat​​ion 和 database.yml 中设置 utf8mb4(使用 MySQL)。

所以现在它可以工作了。但问题是浏览器之间的渲染并不像往常一样一致 :) 而且感觉我再也无法控制用户输入了。

在保存记录并将它们存储到数据库之前,有没有一种简单的方法可以去除 4 字节字符,或者可能只是从用户输入中删除表情符号?

谢谢!

【问题讨论】:

    标签: mysql ruby-on-rails encoding utf-8 emoji


    【解决方案1】:

    您可以覆盖模型中的属性设置器,以便在值存储之前对其执行任何操作。然后,从this stack overflow post 借用正则表达式(在我看来是希腊语!),尝试:

    # Do this for each attribute in your model:
    def my_attr=(value)
      value = value.to_s.gsub(/\360\237/, '')
      super(value.presence)
    end
    

    【讨论】:

      【解决方案2】:

      我在这里找到了另一种表情符号解决方案:https://dev.firmafon.dk/blog/quick-no-hack-emoji-support-with-mysql-rails/

      class Rating < ActiveRecord::Base
        serialize :comment
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-11
        • 2016-02-29
        • 2019-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多