Windows10 (64ビット,日本語環境,cp932) 2.7までで動いていたが3.0でエラーになるようになった 2.7,3.0 ともchocolatelyで入れたもの エンコーディングの仕様が変わったのでしょうか 再現のための短いコードを添付します $ ver Microsoft Windows [Version 10.0.19041.746] $ cat a.txt 入力データ $ cat a.rb #!/usr/bin/ruby #; coding: cp932 files = ARGV for file in files $stderr.print "[#{file}]\n" fin = open(file, 'r') title = ' ' while s = fin.gets if /\%TITLE=(.*):(.*)/i =~ s # ←10行目 title = $2 end end fin.close end ------------------------------------------------------------ × Ruby 3.0 $ ruby -v ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x64-mingw32] $ ruby a.rb a.txt [a.txt] a.rb:10:in `block in
': invalid byte sequence in UTF-8 (ArgumentError) from a.rb:5:in `each' from a.rb:5:in `
' ------------------------------------------------------------ 〇 Ruby2.7 $ ruby -v ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x64-mingw32] $ ruby a.rb a.txt [a.txt]