答案 0 :(得分:1)
我怀疑问题是您没有正确编码的字符串。
foo = ['МеНше', '4.5']
foo.map(&:downcase) #=> ["менше", "4.5"]
foo.each { |el| puts el.downcase }
#>> менше
#>> 4.5
foo.first.encoding #=> #<Encoding:UTF-8>
第一步是检查您的编码。如果不是UTF-8,则可以执行以下操作来强制downcase
:
foo.each { |el| puts el.mb_chars.downcase.to_s }
#>> менше
#>> 4.5
此解决方案需要Rails,因此您需要这样做
require 'active_support/core_ext'
如果您使用的是普通的旧红宝石。