清理';智能&x27;Ruby中Word中的字符
我需要清理用户输入中的各种“智能”字,包括但不限于以下内容:清理';智能&x27;Ruby中Word中的字符,ruby,ms-word,special-characters,smart-quotes,Ruby,Ms Word,Special Characters,Smart Quotes,我需要清理用户输入中的各种“智能”字,包括但不限于以下内容: – EN DASH ‘ LEFT SINGLE QUOTATION MARK ’ RIGHT SINGLE QUOTATION MARK 是否有任何Ruby函数或库可以将这些函数或库映射到它们的ASCII(近似)等价物中,或者我真的需要做一些手动GSUB吗?有些GSUB听起来是最好的选择,特别是如果您计划加载整个额外库来完成基本相同的任务。gem将实体解码为UTF-8 您可
– EN DASH
‘ LEFT SINGLE QUOTATION MARK
’ RIGHT SINGLE QUOTATION MARK
是否有任何Ruby函数或库可以将这些函数或库映射到它们的ASCII(近似)等价物中,或者我真的需要做一些手动GSUB吗?有些GSUB听起来是最好的选择,特别是如果您计划加载整个额外库来完成基本相同的任务。gem将实体解码为UTF-8 您可以使用将其音译为最接近的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