From: whiteleaf <2nd.leaf@...> Date: 2012-12-15T00:15:18+09:00 Subject: [ruby-list:49085] Ruby2.0.0 における __FILE__ エンコーディング --e89a8f642aa8c4fc0f04d0d17fb1 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit whiteleaf です。 Ruby2.0.0 の挙動について疑問があるので質問させて頂きます。 WindowsXP上のコンソールからパスに日本語を含むスクリプトを起動した場合に、 __FILE__ のエンコーディング(String#encoding がではなくデータ的な意味で) が UTF-8 になるのは仕様変更なのでしょうか。(コンソールから指定した部分だけが化ける) (実行バイナリは arton さんの http://www.artonx.org/data/asr/Ruby-2.0.0.msi を使用) # テストスクリプト(D:\日本語\あいうえお.rb) f0 = File.expand_path($0) puts "$0:#{f0},#{f0.encoding}" file = File.expand_path(__FILE__) puts "__FILE__:#{file},#{file.encoding}" ■パターン1(ファイルだけ指定) D:\日本語>ruby -v あいうえお.rb ruby 2.0.0dev (2012-11-01) [i386-mswin32_100] $0:D:/日本語/あいうえお.rb,Windows-31J __FILE__:D:/日本語/縺ゅ>縺・∴縺・rb,Windows-31J ■パターン2(フルパスで指定) D:\日本語>ruby -v D:\日本語\あいうえお.rb ruby 2.0.0dev (2012-11-01) [i386-mswin32_100] $0:D:/日本語/あいうえお.rb,Windows-31J __FILE__:D:/譌・譛ャ隱・縺ゅ>縺・∴縺・rb,Windows-31J ■参考(Ruby1.9.3) jobs:0 $ ruby -v あいうえお.rb ruby 1.9.3dev (2011-05-08) [i386-mingw32] $0:D:/日本語/あいうえお.rb,Windows-31J __FILE__:D:/日本語/あいうえお.rb,Windows-31J よろしくお願いいたします。 --e89a8f642aa8c4fc0f04d0d17fb1--