我終於找到了解決我的Rails 4應用程序中用戶輸入中的emojis問題的方法。它導致'錯誤的字符串值'錯誤。以表情符號或不表情符號?
解決方案是設置utf8mb4(使用MySQL)不僅在數據庫編碼*排序,而且在database.yml。
所以現在它的工作。但問題是整個瀏覽器的渲染效果並不一致:)感覺就像我無法控制用戶輸入一樣。
在保存記錄並將它們存儲在數據庫中之前,是否有一種簡單的方法可以從用戶的輸入中去掉4個字節的字符或可能只是表情符號?
謝謝!
我終於找到了解決我的Rails 4應用程序中用戶輸入中的emojis問題的方法。它導致'錯誤的字符串值'錯誤。以表情符號或不表情符號?
解決方案是設置utf8mb4(使用MySQL)不僅在數據庫編碼*排序,而且在database.yml。
所以現在它的工作。但問題是整個瀏覽器的渲染效果並不一致:)感覺就像我無法控制用戶輸入一樣。
在保存記錄並將它們存儲在數據庫中之前,是否有一種簡單的方法可以從用戶的輸入中去掉4個字節的字符或可能只是表情符號?
謝謝!
您可以覆蓋模型中的屬性設置器,以便在存儲之前對值執行任何操作。然後,從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
我發現多了一個解決方案,這裏的表情符號:https://dev.firmafon.dk/blog/quick-no-hack-emoji-support-with-mysql-rails/
class Rating < ActiveRecord::Base
serialize :comment
end