よしいずみといいます。

 日本語版MS-Windowsの環境下で、ruby 2.0.0 と 2.1.3 を使った時に、次の
ような違いが生じます。
 「あいうえお.rb」(ファイル名のencodingがWindows-31J)というrubyスクリ
プトがあるとき、
 load("あいうえお.rb") を実行したとします。すると、
 ruby 2.0.0 ではエラーが発生することなく実行されます。
 ruby 2.1.3 では「cannot load such file -- あいうえお.rb」というエラ
ーが発生します。
 ただし、「あいうえお.rb」というファイル名のエンコードをutf-8に変更し
た上で load() に引き渡すと、エラーなく実行されます。

 上に書いたことを試すための簡単なrubyスクリプトを掲げてみます。
 load() の他に、参考まで test(?e, filename) と File.read(filename) の
結果も出力するようにしています。

−−−−−−−− ruby script ここから
# encoding: Windows-31J
rb_file = "あいうえお.rb"
rb_str = "puts \"test for script file's encoding.\"\n"
File.open(rb_file, "w") {|ff|  ff.print rb_str}
printf("test(#{rb_file.inspect}): ")
p test(?e, rb_file)
str = File.read(rb_file)
printf("File.read(#{rb_file.inspect}): %s", str)
printf("load(#{rb_file.inspect}): ")
begin
  load(rb_file)
rescue LoadError
  puts $!
end
−−−−−−−− ruby script ここまで

 上のスクリプトのうち、load(rb_file) のところを
  load(rb_file.encode('UTF-8')) に変更すれば、ruby 2.1.3 でもエラーな
く実行されます。

 この違いは、仕様の変更と考えていいんでしょうか。
 ruby 2.0 | 2.1 の両方で動くスクリプトを書く場合、rubyのバージョンに
応じて、utf-8に変更したりしなかったりすれば大丈夫、と考えていいのかど
うか、少々不安だったのでお尋ねすることにしました。
 どなたか詳しい方、よろしくお願いします。

 なお、用いたrubyの正確なバージョンは次の2つです。
・ ruby 2.0.0p451 (2014-02-24) [i386-mingw32]
・ ruby 2.1.3p242 (2014-09-19 revision 47630) [i386-mingw32]

 よろしくお願いします。