ruby on rails - Rieles: ¿Cómo descifrar la cadena que no está en inglés?
ruby-on-rails string (4)
¿Cómo podría descifrar una cadena que no esté en inglés en Ruby on Rails 3?
str = "Привет" # Russian
puts str[0].ord # => 1055
str.downcase!
puts str[0].ord # => 1055 (Should be 1087)
Quiero que funcione en Ruby 1.8.7 y Ruby 1.9.2.
Desde Ruby 2.4 hay un mapeo completo de casos Unicode incorporado. Fuente: https://.com/a/38016153/888294 . Consulte la documentación de Ruby 2.4.0 para obtener más información: https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase
Por qué no usar gem unicode_utils
. Esta gema no downcase
a que el trabajo funcione, sin embargo, puedes usar:
UnicodeUtils.downcase(''Привет'') #=> ''привет''
Si quieres usarlo fácil así:
> "Привет".downcase
=> "привет"
tienes que poner en el archivo de la carpeta de inicializadores 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
str = "Привет"
str.mb_chars.downcase.to_s
#=> "привет"