Rails:如何压缩非英文string?

我怎么能在Ruby on Rails 3中使用非英文string?

str = "Привет" # Russian puts str[0].ord # => 1055 str.downcase! puts str[0].ord # => 1055 (Should be 1087) 

我想要它在Ruby 1.8.7以及Ruby 1.9.2中工作。

 str = "Привет" str.mb_chars.downcase.to_s #=> "привет" 

为什么不使用gem unicode_utils 。 这个gem不会强迫工作,但是你可以使用:

 UnicodeUtils.downcase('Привет') #=> 'привет' 

如果你想这样使用它很容易:

 > "Привет".downcase => "привет" 

你必须把初始化文件夹文件string.rb

 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 

由于Ruby 2.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

Interesting Posts