gpt4 book ai didi

ruby-on-rails - 使用 Ruby 从字符串中删除 bytesize 大于 2 的字符

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:08 26 4
gpt4 key购买 nike

我对 mysql 和某些字符有疑问。如果用户输入 "hello ●",我得到这个错误:

Mysql2::Error: Incorrect string value: '\\xE2\\x97\\x8F he...' for column 'subject'

我想排除所有字节大小大于 2 的字符,即保留 éàç 等法语字符,并删除表情符号或字符,如

给定 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ö>●!"

这不是我所期望的。从字符串中删除字节大小大于 2 的所有字符的最佳方法是什么?

我没有在模型中这样做,因为我可以使用 gem 来管理它,但是当作业想要将字符串放入 Amazon SES 的日志中时,我的问题就出现了。

最佳答案

详细说明 OP 的工作,不使用正则表达式:

string = "hèllö>●!"

cleaned = string.each_char.with_object("") do |char, str|
str << char unless char.bytesize > 2
end

p cleaned

关于ruby-on-rails - 使用 Ruby 从字符串中删除 bytesize 大于 2 的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52427657/

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