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

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

  • 从string列表中删除空string
  • 使用string格式显示小数点最多2个位置或简单的整数
  • 从URL获取主机域?
  • Java中的split()方法在点(。)上不起作用。
  • 将string格式化为3位数字
  • 用sscanf读空格string
  • substr和substring有什么区别?
  • 为什么C中的“a”!=“a”?