Rails:如何小写非英语字符串?
如何在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
为什么不使用 gem
unicode_utils
。这个 gem 不会强制downcase
工作,但是你可以使用:Why not to use gem
unicode_utils
. This gem will not forcedowncase
to work, however you can use:如果你想像这样简单地使用它:
你必须放入初始化程序文件夹文件 string.rb
If you want to use it easy like this:
you have to put into initializers folder file string.rb
从 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
Since Ruby 2.4 there is a built in full Unicode case mapping. Source: https://stackoverflow.com/a/38016153/888294. See Ruby 2.4.0 documentation for details: https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase
Rails 中一个不错且简单的解决方案是将 string.rb 添加到初始值设定项文件夹中,然后在此文件中您可以使用 mb_chars 覆盖 String,现在小写支持重音符号和字母,如 Ñ
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 Ñ