Project

General

Profile

Actions

Bug #8677

closed

$LOAD_PATH did not encoded into the "internal encoding"

Added by jiayp@glodon.com (贾 延平) over 11 years ago. Updated over 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.0.0p277 (2013-07-23 revision 42121) [i386-mingw32]
Backport:
[ruby-core:56139]

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

loadpath.patch (552 Bytes) loadpath.patch jiayp@glodon.com (贾 延平), 08/11/2013 03:19 PM

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?
yes

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.

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?

  1. chcp 65001 in cmd.exe, or
  2. 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?

  1. chcp 65001 in cmd.exe, or
  2. 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

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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0