* [ruby-dev:47064] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
@ 2013-02-21 23:53 ` ko1 (Koichi Sasada)
2013-02-25 6:16 ` [ruby-dev:47107] [ruby-trunk - Bug #7881][Assigned] " usa (Usaku NAKAMURA)
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: ko1 (Koichi Sasada) @ 2013-02-21 23:53 UTC (permalink / raw)
To: ruby developers list
Issue #7881 has been updated by ko1 (Koichi Sasada).
Category set to core
Assignee set to usa (Usaku NAKAMURA)
usa さんか naruse さんかわからなかったんですが、とりあえず usa さんへアサイン。
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-36728
Author: 5.5 (5 5)
Status: Open
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: core
Target version: 1.9.3
ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:47107] [ruby-trunk - Bug #7881][Assigned] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
2013-02-21 23:53 ` [ruby-dev:47064] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する ko1 (Koichi Sasada)
@ 2013-02-25 6:16 ` usa (Usaku NAKAMURA)
2013-02-27 10:03 ` [ruby-dev:47121] [ruby-trunk - Bug #7881] " h.shirosaki (Hiroshi Shirosaki)
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: usa (Usaku NAKAMURA) @ 2013-02-25 6:16 UTC (permalink / raw)
To: ruby developers list
Issue #7881 has been updated by usa (Usaku NAKAMURA).
Status changed from Open to Assigned
Assignee changed from usa (Usaku NAKAMURA) to h.shirosaki (Hiroshi Shirosaki)
なんとなく、いつぞやのWindowsのrequire高速化関連のような気もするのですが、
しろさきさん何かわかったりしますか?
# その前の奴かなあ?
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-36984
Author: 5.5 (5 5)
Status: Assigned
Priority: Normal
Assignee: h.shirosaki (Hiroshi Shirosaki)
Category: core
Target version: 1.9.3
ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:47121] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
2013-02-21 23:53 ` [ruby-dev:47064] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する ko1 (Koichi Sasada)
2013-02-25 6:16 ` [ruby-dev:47107] [ruby-trunk - Bug #7881][Assigned] " usa (Usaku NAKAMURA)
@ 2013-02-27 10:03 ` h.shirosaki (Hiroshi Shirosaki)
2013-02-27 10:39 ` [ruby-dev:47122] " usa (Usaku NAKAMURA)
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: h.shirosaki (Hiroshi Shirosaki) @ 2013-02-27 10:03 UTC (permalink / raw)
To: ruby developers list
Issue #7881 has been updated by h.shirosaki (Hiroshi Shirosaki).
=begin
Windowsのexpand_pathのencodingのバグのようです。
osxだとcurrent directoryのpathに日本語を含むかどうかでencodingがかわるので、Windowsもそのように修正したいと思います。
$ cat test_expand_path.rb
# coding: sjis
p File.expand_path("./a")
p File.expand_path("./a").encoding
$ ruby -v test_expand_path.rb
ruby 2.1.0dev (2013-02-27 trunk 39526) [x86_64-darwin12.2.0]
"/Users/hiroshi/work/a"
#<Encoding:Windows-31J>
$ cd あああ
$ ruby -v ../test_expand_path.rb
ruby 2.1.0dev (2013-02-27 trunk 39526) [x86_64-darwin12.2.0]
"/Users/hiroshi/work/あああ/a"
#<Encoding:UTF-8>
=end
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-37143
Author: 5.5 (5 5)
Status: Assigned
Priority: Normal
Assignee: h.shirosaki (Hiroshi Shirosaki)
Category: core
Target version: next minor
ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:47122] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
` (2 preceding siblings ...)
2013-02-27 10:03 ` [ruby-dev:47121] [ruby-trunk - Bug #7881] " h.shirosaki (Hiroshi Shirosaki)
@ 2013-02-27 10:39 ` usa (Usaku NAKAMURA)
2013-02-27 11:38 ` [ruby-dev:47123] " h.shirosaki (Hiroshi Shirosaki)
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: usa (Usaku NAKAMURA) @ 2013-02-27 10:39 UTC (permalink / raw)
To: ruby developers list
Issue #7881 has been updated by usa (Usaku NAKAMURA).
あれ、これはWindowsでは互換性のためにわざと常にlocaleでexpand_pathされるようにしておいたような記憶があるのですが。
そろそろこの仕様を変えるのはアリだとは思いますが、1.9.3はちょっと意図的ではないので元の挙動に戻したいです。
2.0.0は... 現状優先なのかなあ。
C:\> type a.rb
# coding: utf-8
unless ''.respond_to?("encoding")
class String
def encoding
"dummy"
end
end
end
path = File.expand_path("./a")
p [path, path.encoding]
C:\> ruby187p371 -v a.rb
ruby 1.8.7 (2012-10-12 patchlevel 371) [i386-mswin32]
["C:/a", "dummy"]
C:\> ruby193p0 -v a.rb
ruby 1.9.3p0 (2011-10-30 revision 33570) [x64-mswin64_100]
["C:/a", #<Encoding:Windows-31J>]
C:\> ruby193p392 -v a.rb
ruby 1.9.3p392 (2013-02-22 revision 39386) [x64-mswin64_100]
["C:/a", #<Encoding:UTF-8>]
C:\> ruby200p0 -v a.rb
ruby 2.0.0p0 (2013-02-24 revision 39474) [x64-mswin64_100]
["C:/a", #<Encoding:UTF-8>]
C:\> cd てすと
C:\> ruby187p371 -v a.rb
ruby 1.8.7 (2012-10-12 patchlevel 371) [i386-mswin32]
["C:/\202\304\202\267\202\306/a", "dummy"]
C:\> ruby193p0 -v a.rb
ruby 1.9.3p0 (2011-10-30 revision 33570) [x64-mswin64_100]
["C:/てすと/a", #<Encoding:Windows-31J>]
C:\> ruby193p392 -v a.rb
ruby 1.9.3p392 (2013-02-22 revision 39386) [x64-mswin64_100]
["C:/\u3066\u3059\u3068/a", #<Encoding:UTF-8>]
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>]
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-37145
Author: 5.5 (5 5)
Status: Assigned
Priority: Normal
Assignee: h.shirosaki (Hiroshi Shirosaki)
Category: core
Target version: next minor
ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:47123] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
` (3 preceding siblings ...)
2013-02-27 10:39 ` [ruby-dev:47122] " usa (Usaku NAKAMURA)
@ 2013-02-27 11:38 ` h.shirosaki (Hiroshi Shirosaki)
2013-02-28 8:55 ` [ruby-dev:47125] " U.Nakamura
2013-03-03 13:50 ` [ruby-dev:47130] " nagachika (Tomoyuki Chikanaga)
` (2 subsequent siblings)
7 siblings, 1 reply; 9+ messages in thread
From: h.shirosaki (Hiroshi Shirosaki) @ 2013-02-27 11:38 UTC (permalink / raw)
To: ruby developers list
Issue #7881 has been updated by h.shirosaki (Hiroshi Shirosaki).
usa (Usaku NAKAMURA) 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になるのがよいと思ったのですが、現状がよいのでしょうか?
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-37148
Author: 5.5 (5 5)
Status: Assigned
Priority: Normal
Assignee: h.shirosaki (Hiroshi Shirosaki)
Category: core
Target version: next minor
ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:47125] Re: [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
2013-02-27 11:38 ` [ruby-dev:47123] " h.shirosaki (Hiroshi Shirosaki)
@ 2013-02-28 8:55 ` U.Nakamura
0 siblings, 0 replies; 9+ messages in thread
From: U.Nakamura @ 2013-02-28 8:55 UTC (permalink / raw)
To: ruby developers list
こんにちは、なかむら(う)です。
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>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:47130] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
` (4 preceding siblings ...)
2013-02-27 11:38 ` [ruby-dev:47123] " h.shirosaki (Hiroshi Shirosaki)
@ 2013-03-03 13:50 ` nagachika (Tomoyuki Chikanaga)
2013-03-05 5:54 ` [ruby-dev:47133] " h.shirosaki (Hiroshi Shirosaki)
2019-08-08 20:54 ` [ruby-dev:50830] [Ruby master Bug#7881] " merch-redmine
7 siblings, 0 replies; 9+ messages in thread
From: nagachika (Tomoyuki Chikanaga) @ 2013-03-03 13:50 UTC (permalink / raw)
To: ruby developers list
Issue #7881 has been updated by nagachika (Tomoyuki Chikanaga).
素朴にバグかと思っていたのですが、File.expand_path の今現在の挙動のほうが望ましい場面っていうのは考えられるんでしょうか。
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-37274
Author: 5.5 (5 5)
Status: Assigned
Priority: Normal
Assignee: h.shirosaki (Hiroshi Shirosaki)
Category: core
Target version: next minor
ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:47133] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
` (5 preceding siblings ...)
2013-03-03 13:50 ` [ruby-dev:47130] " nagachika (Tomoyuki Chikanaga)
@ 2013-03-05 5:54 ` h.shirosaki (Hiroshi Shirosaki)
2019-08-08 20:54 ` [ruby-dev:50830] [Ruby master Bug#7881] " merch-redmine
7 siblings, 0 replies; 9+ messages in thread
From: h.shirosaki (Hiroshi Shirosaki) @ 2013-03-05 5:54 UTC (permalink / raw)
To: ruby developers list
Issue #7881 has been updated by h.shirosaki (Hiroshi Shirosaki).
=begin
たとえば、下記のようなコードを書いたときに、current directoryのパスが日本語を含んでいても
Encoding::CompatibilityError にならずに動く、という利点はあるのではないでしょうか。
expand_pathの結果がfilesystem encodingに変わる可能性があれば、日本語の引数に.encode('filesystem')をつけるなどしておかないといけません。
# coding: euc-jp
expand = File.expand_path('あ')
p [expand, expand.encoding]
path = File.join(expand, "あああ")
p [path, path.encoding]
あと、報告のあったrequire "./b" に関しては require_relative "b" でも動作するようです。
=end
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-37295
Author: 5.5 (5 5)
Status: Assigned
Priority: Normal
Assignee: h.shirosaki (Hiroshi Shirosaki)
Category: core
Target version: next minor
ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
http://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* [ruby-dev:50830] [Ruby master Bug#7881] Windows でパスに日本語を含むスクリプトからの require が失敗する
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
` (6 preceding siblings ...)
2013-03-05 5:54 ` [ruby-dev:47133] " h.shirosaki (Hiroshi Shirosaki)
@ 2019-08-08 20:54 ` merch-redmine
7 siblings, 0 replies; 9+ messages in thread
From: merch-redmine @ 2019-08-08 20:54 UTC (permalink / raw)
To: ruby-dev
Issue #7881 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Assigned to Closed
This appears to have been fixed between Ruby 2.4 and 2.5:
```
D:\テスト>c:\Ruby24-x64\bin\ruby a.rb
a.rb: No such file or directory @ realpath_rec - D:/??? (Errno::ENOENT)
D:\テスト>c:\Ruby25-x64\bin\ruby a.rb
No Problem.
```
----------------------------------------
Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する
https://bugs.ruby-lang.org/issues/7881#change-80501
* Author: 5.5 (5 5)
* Status: Closed
* Priority: Normal
* Assignee: h.shirosaki (Hiroshi Shirosaki)
* Target version:
* ruby -v: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
=begin
Windows でパスに日本語を含むスクリプトからの require が失敗します。
Ruby 1.9.3 の p374,p385 でこの現象が起こりますが,p125 では起こりません。
p286 あたりから起こるようになったと思います。
【再現手順】
(1) d:/テスト というフォルダーを作る。
(2) d:/テスト/a.rb を下記のように書く。
(3) d:/テスト/b.rb を下記のように書く。
(4) cd /テスト
(5) ruby a.rb
a.rb の内容:
# encoding: utf-8
require "./b"
b.rb の内容
# encoding: utf-8
puts "No problem."
これで,
cannot load such file -- ./b (LoadError)
が出ます。
* フォルダー名を「テスト」から「test」に変えると正常に動作します。
* a.rb のスクリプトエンコーディングを CP932 に変えると正常に動作します。
* require "./b" を require "./b".encode("CP932") に変えると正常に動作します。
* 標準添付ライブラリーや gem はふつうに require できます。
=end
--
https://bugs.ruby-lang.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-08-08 20:54 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <redmine.issue-7881.20130219113737@ruby-lang.org>
2013-02-21 23:53 ` [ruby-dev:47064] [ruby-trunk - Bug #7881] Windows でパスに日本語を含むスクリプトからの require が失敗する ko1 (Koichi Sasada)
2013-02-25 6:16 ` [ruby-dev:47107] [ruby-trunk - Bug #7881][Assigned] " usa (Usaku NAKAMURA)
2013-02-27 10:03 ` [ruby-dev:47121] [ruby-trunk - Bug #7881] " h.shirosaki (Hiroshi Shirosaki)
2013-02-27 10:39 ` [ruby-dev:47122] " usa (Usaku NAKAMURA)
2013-02-27 11:38 ` [ruby-dev:47123] " h.shirosaki (Hiroshi Shirosaki)
2013-02-28 8:55 ` [ruby-dev:47125] " U.Nakamura
2013-03-03 13:50 ` [ruby-dev:47130] " nagachika (Tomoyuki Chikanaga)
2013-03-05 5:54 ` [ruby-dev:47133] " h.shirosaki (Hiroshi Shirosaki)
2019-08-08 20:54 ` [ruby-dev:50830] [Ruby master Bug#7881] " merch-redmine
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).