Bug #8677
closed$LOAD_PATH did not encoded into the "internal encoding"
Description
=begin
When I use utf-8 as the internal encoding, and I require some file with Chinese name,and the require failure with:
(({E:/code/rubyinstaller-master/sandbox/ruby19_mingw/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require': incompatible character encodings: UTF-8 and GBK (Encoding::CompatibilityError)}))
I encode the $LOAD_PATH to utf-8 encoding And the problem gone.
So I think we should encoding the $LOAD_PATH into the internal encoding.
Is it right?
If so,I will try to create a patch.I not,please tell me the right way.
thanks a lot
=end
Files
Updated by jonforums (Jon Forums) over 11 years ago
When require fails, is cmd.exe using codepage 936?
What happens when you chcp 65001
in cmd.exe but do not encode $LOAD_PATH
to utf-8?
Updated by jiayp@glodon.com (贾 延平) over 11 years ago
jonforums (Jon Forums) wrote:
When require fails, is cmd.exe using codepage 936?
yesWhat happens when you
chcp 65001
in cmd.exe but do not encode$LOAD_PATH
to utf-8?
require do work with my patch for bug https://bugs.ruby-lang.org/issues/8676,and the $LOAD_PATH's encoding is UTF-8.
Updated by jonforums (Jon Forums) over 11 years ago
What happens when you
chcp 65001
in cmd.exe but do not encode$LOAD_PATH
to utf-8?
require do work with my patch for bug https://bugs.ruby-lang.org/issues/8676,and the $LOAD_PATH's encoding is UTF-8.
OK. But do either of these also fix this failure?
-
chcp 65001
in cmd.exe, or - use powershell
I'm curious whether those quick non-ruby changes also work; simple workarounds that don't require your patch + $LOAD_PATH encoding tweak.
Updated by jiayp@glodon.com (贾 延平) over 11 years ago
jonforums (Jon Forums) wrote:
What happens when you
chcp 65001
in cmd.exe but do not encode$LOAD_PATH
to utf-8?
require do work with my patch for bug https://bugs.ruby-lang.org/issues/8676,and the $LOAD_PATH's encoding is UTF-8.OK. But do either of these also fix this failure?
chcp 65001
in cmd.exe, or- use powershell
I'm curious whether those quick non-ruby changes also work; simple workarounds that don't require your patch + $LOAD_PATH encoding tweak.
chcp 65001 can make the $LOAD_PATH encoding to UTF-8,and use powershell need chcp too.
The patch I mentioned in the other issue is to fix the require path with UTF-8 encoding and NON-ASCII name,and without this patch the $LOAD_PATH is UTF-8 encoding and the required file is UTF-8 encoding too,But can not load file.
Updated by jiayp@glodon.com (贾 延平) over 11 years ago
- File loadpath.patch loadpath.patch added
Submit a patch to use rb_str_encode_ospath encode $LOADPATH
Updated by jiayp@glodon.com (贾 延平) about 11 years ago
Hope fix in Ruby 2.1
Updated by mame (Yusuke Endoh) over 2 years ago
- Status changed from Open to Closed
- Backport deleted (
1.9.3: UNKNOWN, 2.0.0: UNKNOWN)
I'm unsure the precise procedure to reproduce the issue, but I couldn't repro it in any way. Maybe fixed by #18191? Feel free to ping me if it is not fixed yet.