Rails:如何小写非英语字符串?

发布于 2024-12-04 03:56:43 字数 230 浏览 1 评论 0原文

如何在 Ruby on Rails 3 中小写非英语字符串?

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

How could I downcase a non-English string in Ruby on Rails 3 ?

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

I want it to work in Ruby 1.8.7 as well as Ruby 1.9.2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

划一舟意中人 2024-12-11 03:56:43
str = "Привет"
str.mb_chars.downcase.to_s
#=> "привет"
str = "Привет"
str.mb_chars.downcase.to_s
#=> "привет"
芯好空 2024-12-11 03:56:43

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

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

Why not to use gem unicode_utils. This gem will not force downcase to work, however you can use:

UnicodeUtils.downcase('Привет') #=> 'привет'
金橙橙 2024-12-11 03:56:43

如果你想像这样简单地使用它:

> "Привет".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

If you want to use it easy like this:

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

you have to put into initializers folder file 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
罪#恶を代价 2024-12-11 03:56:43

Rails 中一个不错且简单的解决方案是将 string.rb 添加到初始值设定项文件夹中,然后在此文件中您可以使用 mb_chars 覆盖 String,现在小写支持重音符号和字母,如 Ñ

class String
  def downcase
    self.mb_chars.downcase.to_s
  end

  def capitalize
    self.mb_chars.capitalize.to_s
  end

  def upcase
    self.mb_chars.upcase.to_s
  end

  def titleize
    self.mb_chars.titleize.to_s
  end
end

A nice and easy solution in rails is to add string.rb into initializers folder, then in this file you can override String using mb_chars, now downcase support accents and letters like Ñ

class String
  def downcase
    self.mb_chars.downcase.to_s
  end

  def capitalize
    self.mb_chars.capitalize.to_s
  end

  def upcase
    self.mb_chars.upcase.to_s
  end

  def titleize
    self.mb_chars.titleize.to_s
  end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文