我终于找到了一种方法来克服我的Rails 4应用程序中用户输入中的emojis问题。它导致了不正确的字符串值'错误。
解决方案是将utf8mb4(使用MySQL)设置为不仅在DB编码*校对中,而且在database.yml中。
所以现在它有效。但问题是渲染在浏览器中并不像往常一样:)并且感觉我再也无法控制用户输入了。
在保存记录并将其存储在数据库中之前,是否有一种简单的方法可以从用户输入中删除4字节字符或表情符号?
谢谢!
答案 0 :(得分:0)
您可以覆盖模型中的属性设置器,以便在存储之前对值执行任何操作。然后,从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
答案 1 :(得分:-1)
我在这里找到了另外一个表情符号解决方案:https://dev.firmafon.dk/blog/quick-no-hack-emoji-support-with-mysql-rails/
class Rating < ActiveRecord::Base
serialize :comment
end