[#46807] [ruby-trunk - Bug #7625][Open] Arrayを継承したオブジェクトのcompactがArrayを返す — "mogya@... (Daisuke Furukawa)" <mogya@...>

19 messages 2012/12/26

[#46822] [ruby-trunk - Feature #7639][Open] More freedom for location of comments — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

14 messages 2012/12/30

[ruby-dev:46773] [ruby-trunk - Bug #7562] __FILE__ encoding in Windows

From: "usa (Usaku NAKAMURA)" <usa@...>
Date: 2012-12-19 15:16:19 UTC
List: ruby-dev #46773
Issue #7562 has been updated by usa (Usaku NAKAMURA).


とりあえず、意図せざる変更だったのはそうなので、1.9相当の挙動になるように変更しました。

なお、1.9もそうですが、Windowsで、かつ、localeとfilesystem encodingが異なる場合、その2つのエンコーディングで異なるバイト列になる文字を含むファイル名に関しては問題が発生するとは思います。
if $0 == __FILE__ というイディオムを殺さずに解決してかつfeature freezeを突破する鮮やかな方法が思いつかないので、その問題についてはまたいつか誰かが踏むまで忘れることにします。
----------------------------------------
Bug #7562: __FILE__ encoding in Windows 
https://bugs.ruby-lang.org/issues/7562#change-34868

Author: tarui (Masaya Tarui)
Status: Closed
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-12-15 trunk 38381) [x64-mswin64_100]


[ruby-list:49085] ですが、bugっぽいので勝手にバグ登録させていただきます。
trunkでも同じでした。
---
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

よろしくお願いいたします。


-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next