gpt4 book ai didi

ruby-on-rails - 在 Ruby 中仅从字符串中删除表情符号

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:09 25 4
gpt4 key购买 nike

一位用户正在使用表情符号,它在我的应用程序中出错。如何检查字符串是否包含表情符号并仅删除表情符号?

 Message.create(user: @user, ticket: @ticket, text: "\r\nIm done with this bug! \u{1f431}!\r\n")

ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect string value: 'x90\xB1!\x0D

最佳答案

发生这种情况是因为您的数据库不允许使用 utf8mb4,因此您需要检查两者并返回文本。为了减少调用回调的次数,我会将检查作为回调进行,并且仅当文本字段已更改时。

 before_save :ensure_utf8, if: :text_changed?

def ensure_utf8
if self.text
self.text = self.text.encode( Encoding.find('UTF-8'), { invalid: :replace, undef: :replace, replace: '' } )
self.text = self.text.each_char.select { |c| c.bytes.first < 240 }.join('')
end
end

关于ruby-on-rails - 在 Ruby 中仅从字符串中删除表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33680742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com