У меня проблема с mysql и некоторыми персонажами.Если пользователь вводит "hello ●"
, я получаю эту ошибку:
Mysql2::Error: Incorrect string value: '\\xE2\\x97\\x8F he...' for column 'subject'
Я хотел бы исключить все символы, байт которых больше двух, т. Е. Оставить французские символы, такие как é
, à
,ç
и удалите смайлики или символы, такие как ●
.
Учитывая string = "hèllö>●!"
, я хотел бы получить "hèllö>!"
.Для этого я написал следующее:
def bytesize(var)
var.each_char do |char|
puts char.bytesize
end
end
bytesize(string)
1
2
1
1
2
1
3
1
# => "hèllö>●!"
, что я не ожидал.Каков наилучший способ удалить из всех символов, чей байтовый размер больше двух в строке?
Я не делаю этого в модели, потому что я могу справиться с этим с помощью гема, но моя проблема возникает, когдаработа хочет поместить строку в журналы Amazon SES.