1
Rubyでアクセントや"ñ"
のようなラテン文字を削除する必要があります。私はforce_encoding('UTF-8')
を使ってみましたが、うまくいきませんでした。アクセントのようなラテン文字を削除するには?
Rubyでアクセントや"ñ"
のようなラテン文字を削除する必要があります。私はforce_encoding('UTF-8')
を使ってみましたが、うまくいきませんでした。アクセントのようなラテン文字を削除するには?
私がRubyエンコーディングについて他の回答で使用したこのコードは、ほとんどの場合有効です。
t="déjà"
puts t.gsub(/[éèàùµñçêï]/, '?') => d?j?
にあり、そのためのライブラリがあるが、あなたはまた、単純な正規表現を使用することができ、それが置き換えるである場合は、代わりにエンコードをしたい
t="doña"
p t.force_encoding(Encoding.locale_charmap).encode('UTF-8')
#=>"do\u251C\u2592a"
EDIT:あなたのスクリプト自体は、UTF8コーディングで保存されていることを確認します。私はあなたが通常のキャラクターの特別なバージョンを置き換えるコメントで気づいた、あなたはこれを次のようにすることができます
p string_with_special_chars.tr(
"ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
"AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz")
なぜそれらを削除しますか? – SLaks
ラテン文字以外はどうですか? – SLaks
実際に非アクセントのASCIIに変換しますか? –