Rubyスクリプトを実行しようとしていますが、次の行で常にエラーが発生します。
file_content.gsub(/dr/i,'med')
「dr」を「med」に置き換えようとしています。
エラーは次のとおりです。
program.rb:4:in `gsub': invalid byte sequence in UTF-8 (ArgumentError)
なぜですか、この問題を修正するにはどうすればよいですか?
Ruby 2.2.1p85を使用して、MAC OS X Yosemiteマシンで作業しています。
おそらくあなたの文字列はUTF-8形式ではないので、
if ! file_content.valid_encoding?
s = file_content.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
s.gsub(/dr/i,'med')
end
「 Ruby 2.0.0 String#Match ArgumentError:UTF-8の無効なバイトシーケンス 」を参照してください。