gpt4 book ai didi

ruby-on-rails - ruby rails : compare two strings in terms of database collation

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

我有一个单词列表,想找出数据库中已经存在的单词。

我决定使用“SELECT word FROM table WHERE word IN(array_of_words)”,而不是进行数十个 SQL 查询,然后遍历结果。

问题是数据库整理。

http://www.collation-charts.org/mysql60/mysql604.utf8_general_ci.european.html

有许多不同的字符,MySQL 将其视为相同。但是,在 Ruby 代码中,string1 不等于 string2。

例如:如果单词是“šuo”,数据库也可能返回“suo”,如果它被发现(没关系),但是,当我想检查时,如果找到“šuo”的东西,Ruby,当然,返回 false (šuo != suo)。

那么,有什么方法可以根据相同的排序规则在 Ruby 中比较两个字符串?

最佳答案

我已经将 iconv 用于类似的事情:

require 'iconv'

class String
def to_ascii_iconv
Iconv.new('ASCII//IGNORE//TRANSLIT', 'UTF-8').iconv(self).unpack('U*').select { |cp| cp < 127 }.pack('U*')
end
end

puts 'suo'.to_ascii_iconv
# => suo
puts 'šuo'.to_ascii_iconv
# => suo
puts 'suo'.to_ascii_iconv == 'šuo'.to_ascii_iconv
# => true

希望对您有所帮助!

祖斌

关于ruby-on-rails - ruby rails : compare two strings in terms of database collation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353690/

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