こんにちは、なかむら(う)です。

In message "[ruby-dev:47123] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する"
    on Feb.27,2013 20:38:05, <h.shirosaki / gmail.com> wrote:
> > あれ、これはWindowsでは互換性のためにわざと常にlocaleでexpand_pathされるようにしておいたような記憶があるのですが。
> > 
> 1.9.3のunixでは常にlocaleになるように修正されていましたが、windowsではbackportするときには、そのまま(2.0.0と同じ)で手は入れられていないのではないでしょうか。

意図を示すテストがないせいで気付かなかったのですかねえ。
あとで本当にテストがなかったのかどうか探そう。


> encodingを常にfile system encodingにするのは、たぶん以下の行以降のcpとpath_encodingをfile system encodingにすればよいと思います。
> https://github.com/ruby/ruby/blob/trunk/win32/file.c#L584

ありがとうございます。


> > そろそろこの仕様を変えるのはアリだとは思いますが、1.9.3はちょっと意図的ではないので元の挙動に戻したいです。
> > 2.0.0は... 現状優先なのかなあ。
> 
> > C:\てすと> ruby200p0 -v a.rb
> > ruby 2.0.0p0 (2013-02-24 revision 39474) [x64-mswin64_100]
> > ["C:/\u3066\u3059\u3068/a", #<Encoding:UTF-8>]
> 
> trunkのosxでの動作から考えると、このencodingがWindows-31Jになるのがよいと思ったのですが、現状がよいのでしょうか?

意図はともかく挙動は変わっちゃってるので、あえてバグだと言わ
ずに仕様だと押し切った方が将来楽かも、とか。

まあ、あんまり強い意見はないので、2.0.0メンテナの近永さんと相
談ですかねえ。


それでは。
-- 
U.Nakamura <usa / garbagecollect.jp>