Issue #15993 has been updated by MSP-Greg (Greg L).


While taking a break, looked at this again.  Below is the encoding of various items:
```
$LOAD_PATH
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/site_ruby/2.7.0
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/site_ruby/2.7.0/x64-msvcrt
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/site_ruby
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/vendor_ruby/2.7.0
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/vendor_ruby/2.7.0/x64-msvcrt
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/vendor_ruby
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/2.7.0
ASCII-8BIT      C:/Greg/Ruby 抗我/lib/ruby/2.7.0/x64-mingw32

IBM437          __FILE__
IBM437          __dir__
UTF-8           Dir.pwd
```

The encoding wasn't affected by using `-E` in `RUBYOPT`.

Tested using today's trunk.

----------------------------------------
Bug #15993: 'require' doesn't work if there are Cyrillic chars in the path to Ruby dir
https://bugs.ruby-lang.org/issues/15993#change-80334

* Author: inversion (Yura Babak)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
I﹊m trying to build a cross-platform portable application with Ruby onboard and there is a problem on Windows. 
A user usually installs it to the Roaming folder which sits inside a user folder which can often have not a Latin name or contain spaces). 
When there is a Cyrillic character (maybe just not Latin) in the path ■ require of any gem doesn﹊t work:

```
D:\users\抗我\Ruby\2.6\bin>ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32]

D:\users\抗我\Ruby\2.6\bin>ruby -e "require 'logger'"
Traceback (most recent call last):
        1: from <internal:gem_prelude>:2:in `<internal:gem_prelude>'
<internal:gem_prelude>:2:in `require': No such file or directory -- D:/users/妓妓忸妊■/Ruby/2.6/lib/ruby/2.6.0/rubygems.rb (LoadError)

D:\users\抗我\Ruby\2.6\bin>ruby --disable=rubyopt -e "require 'logger'"
Traceback (most recent call last):
        1: from <internal:gem_prelude>:2:in `<internal:gem_prelude>'
<internal:gem_prelude>:2:in `require': No such file or directory -- D:/users/妓妓忸妊■/Ruby/2.6/lib/ruby/2.6.0/rubygems.rb (LoadError)

D:\users\抗我\Ruby\2.6\bin>gem list
Traceback (most recent call last):
        1: from <internal:gem_prelude>:2:in `<internal:gem_prelude>'
<internal:gem_prelude>:2:in `require': No such file or directory -- D:/users/妓妓忸妊■/Ruby/2.6/lib/ruby/2.6.0/rubygems.rb (LoadError)

```

We can see such encoding transformations in the output:

```
抗我 (utf-8) == 妓妓忸妊■ (win1251)
```

I have an old Ruby installation that works fine:

```
D:\users\抗我\Ruby\2.0\bin>ruby -e "require 'logger'"

D:\users\抗我\Ruby\2.0\bin>ruby -v
ruby 2.0.0p451 (2014-02-24) [i386-mingw32]
```
The same is for `ruby 2.0.0p643 (2015-02-25) [i386-mingw32]` .

I also checked that require fails in the same case for
`ruby 2.1.9p490 (2016-03-30 revision 54437) [i386-mingw32]`



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>