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

  • BestPractice - 将string的首字符转换为小写字母
  • 我怎样才能检查一个string是否只包含Python中的字母?
  • C ++中的L前缀是什么?
  • SQL Query连接Oracle中多行的列值
  • 获取第n个string的索引?
  • 在ToString()之前检查null
  • 如何使String.Contains不区分大小写?
  • pythonsstring格式化的许多方法 - 是旧的(将被)不赞成?
  • 将一串字节转换为一个int(python)
  • 正则expression式匹配来testing一个有效的年份
  • groovy中单引号或双引号内的string有什么区别?