rubyのloadとrequireの違いは、ドキュメントでは以下のように説明されています。

Kernel.#require は同じファイルは一度だけしかロードしませんが、 Kernel.#load は無条件にロードします。
また、require は拡張子.rb や .so を自動的に補完しますが、 load は行いません。

しかし、以下のプログラムではloadもrequireも正しく動作するにもかかわらず、

#! ruby253 -EWindows-31J
# -*- mode:ruby; coding:Windows-31J -*-
$:.push("c:/test/test")
load "sub.rb"
require "sub.rb"

以下のプログラムではrequireのみが失敗します。loadは成功します。

#! ruby253 -EWindows-31J
# -*- mode:ruby; coding:Windows-31J -*-
$:.push("c:/テスト/test")
load "sub.rb"
require "sub.rb"

動作環境はWindows7 + Ruby2.5.3です。この挙動はrubyの仕様上正しいのか、二番目の例でrequireを成功させるにはどのように記述すべきなのか、教えていただけるとたいへん助かります。よろしくお願いします。