Bug #2178

in gem_prelude.rb: encoding error

Added by Martin Dürst over 2 years ago. Updated 9 months ago.

[ruby-core:25959]
Status:Closed Start date:10/06/2009
Priority:Normal Due date:
Assignee:- % Done:

100%

Category:-
Target version:2.0.0
ruby -v:ruby 1.9.2dev (2009-10-05 trunk 25235) [i386-cygwin]

Description

When running the head ruby with a home directory that does contain non-ASCII characters, line 75 of gem_prelude.rb reports an exception because of invalid bytes in a string (interpreted as US-ASCII).
gem_prelude.rb:75:
        @gem_path = gpaths.split(File::PATH_SEPARATOR)
The patch we found is to replace the above line with:
        @gem_path = gpaths.force_encoding('ascii-8bit').split(File::PATH_SEPARATOR)
However, while this worked in our case, there are encodings that when interpreted as ASCII-8BIT look like they contain '/', '\', or so. Actually, this is true for Shift_JIS, the encoding used on the system in question, so we were just lucky that this didn't apply to the path we used. A better choice would probably be to force-encode to the file system encoding, if available.

Regards,   Martin.

Related issues

related to ruby-trunk - Bug #2304: in gem_prelude: unknown encoding name - filesystem Closed 10/29/2009

Associated revisions

Revision 25526
Added by Yui NARUSE over 2 years ago

* encoding.c (get_filesystem_encoding): add Encoding.filesystem_encoding [ruby-dev:39546] also see [ruby-core:25959]

Revision 25528
Added by Yui NARUSE over 2 years ago

Previous commit is for [ruby-core:25959]

History

Updated by Yui NARUSE over 2 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100
This issue was solved with changeset r25528.
Martin, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

Also available in: Atom PDF