[英]How to remove 4 byte utf-8 characters in Ruby?
由於MySQL的utf8不支持4字節字符,我正在尋找一種方法來檢測並消除Ruby中字符串中的任何4字節utf8字符。 我知道我可以更新我的表使用utf8m4,但有幾個原因是不可能或所需的解決方案。
簡單地將字符串編碼為ASCII將刪除這些字符,但也會刪除所有其他非ASCII字符,這是不好的。
以下似乎在Ruby 1.9.3中對我有用:
input.each_char.select{|c| c.bytes.count < 4 }.join('')
例如:
input = "hello \xF0\xA9\xB6\x98 world" # includes U+29D98
input.each_char.select{|c| c.bytes.count < 4 }.join('') # 'hello world'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.