Gem HTMLEntities будет декодировать объекты в UTF-8.
Вы можете использовать iconv для транслитерации до ближайших эквивалентов ASCII или простых вызовов gsub
или tr
.У Джеймса Грея есть блогов о конвертации между различными наборами символов, показывающих, как выполнять транслитерации.
require 'htmlentities'
chars = [
'–', # EN DASH
'‘', # LEFT SINGLE QUOTATION MARK
'’' # RIGHT SINGLE QUOTATION MARK
]
decoder = HTMLEntities.new('expanded')
chars.each do |c|
puts "#{ c } => #{ decoder.decode(c) } => #{ decoder.decode(c).tr('–‘’', "-'")} => #{ decoder.decode(c).encoding }"
end
# >> – => – => - => UTF-8
# >> ‘ => ‘ => ' => UTF-8
# >> ’ => ’ => ' => UTF-8