From: Greg.mpls@... Date: 2019-08-01T20:25:29+00:00 Subject: [ruby-core:94102] [Ruby master Bug#15993] 'require' doesn't work if there are Cyrillic chars in the path to Ruby dir 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 :2:in `' :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 :2:in `' :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 :2:in `' :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: