我需要删除Ruby中的重音符或"ñ"
之类的拉丁字符。我尝试使用force_encoding('UTF-8')
,但它没有用。
答案 0 :(得分:4)
我在其他关于Ruby编码的答案中使用的这段代码证明在大多数情况下是有效的。确保您的脚本本身使用UTF8编码保存:
t="doña"
p t.force_encoding(Encoding.locale_charmap).encode('UTF-8')
#=>"do\u251C\u2592a"
如果它是替换你想要的而不是编码有那些库,但你也可以使用一个简单的正则表达式
t="déjà"
puts t.gsub(/[éèàùµñçêï]/, '?') => d?j?
编辑:我注意到你想在评论中用正常版本替换一个角色的特殊版本,你可以这样做,如下所示
p string_with_special_chars.tr(
"ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
"AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz")