2

アクセントや"ñ"Ruby などのラテン文字を削除する必要があります。使ってみforce_encoding('UTF-8')ましたがダメでした。

4

1 に答える 1

5

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")
于 2012-04-24T22:16:53.907 に答える