红宝石数组中的小写字符串

时间:2019-02-21 11:14:22

标签: ruby

我对数组中的字符串downcaseupcase感到有些奇怪。分享我的代码:

code example

1 个答案:

答案 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'

如果您使用的是普通的旧红宝石。