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