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中工作。

  • 在bash中,如何检查一个string是否以某个值开始?
  • PostgreSQL:文本和varchar之间的区别(字符变化)
  • 从Javascriptstring中删除第一个字符
  • 用Sedreplace整个包含一个string的行
  • SQL Server将string转换为datetime
  • 如何在Python中将string转换为小写
  • 找出基于Swift中的String的UILabel的大小
  • 如何在JavaScript中每n个字符之后插入一个字符?
  • 4 Solutions collect form web for “Rails:如何压缩非英文string?”

     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