From: "U.Nakamura" Date: 2013-02-28T17:55:26+09:00 Subject: [ruby-dev:47125] Re: [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する こんにちは、なかむら(う)です。 In message "[ruby-dev:47123] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する" on Feb.27,2013 20:38:05, 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", #] > > trunkのosxでの動作から考えると、このencodingがWindows-31Jになるのがよいと思ったのですが、現状がよいのでしょうか? 意図はともかく挙動は変わっちゃってるので、あえてバグだと言わ ずに仕様だと押し切った方が将来楽かも、とか。 まあ、あんまり強い意見はないので、2.0.0メンテナの近永さんと相 談ですかねえ。 それでは。 -- U.Nakamura