Rails: How to downcase non-English string?
如何在RubyonRails3中使用非英语字符串?
1 2 3 4 | str ="Привет" # Russian puts str[0].ord # => 1055 str.downcase! puts str[0].ord # => 1055 (Should be 1087) |
我希望它能在Ruby1.8.7和Ruby1.9.2中工作。
1 2 3 | str ="Привет" str.mb_chars.downcase.to_s #=>"привет" |
为什么不使用gem
1 | UnicodeUtils.downcase('Привет') #=> 'привет' |
如果您想像这样轻松地使用它:
1 2 | >"Привет".downcase =>"привет" |
您必须放入初始值设定项文件夹文件string.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | require 'unicode' class String def downcase Unicode::downcase(self) end def downcase! self.replace downcase end def upcase Unicode::upcase(self) end def upcase! self.replace upcase end def capitalize Unicode::capitalize(self) end def capitalize! self.replace capitalize end end |
由于Ruby2.4,有一个内置的完整Unicode大小写映射。资料来源:https://stackoverflow.com/a/38016153/888294。有关详细信息,请参阅Ruby 2.4.0文档:https://ruby doc.org/core-2.4.0/string.html method-i-downcase