Bugs item #28212, was opened at 2010-05-18 08:36 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=575&aid=28212&group_id=126
Category: #gem and #require methods Group: None Status: Open Resolution: None Priority: 3 Submitted By: Mike Smith (msmith177) >Assigned to: John Barnette (jbarnette) Summary: UndefinedConversionError if Encoding.default_internal=ASCII-8BIT Initial Comment: With ruby 1.9.1, the default internal string encoding can be set with Encoding.default_internal= or by passing ruby the -E":US-ASCII" option. If the internal encoding is set to non-UTF-8 encodings such as US-ASCII, BINARY, or ISO-8859-1, then you will get an exception when trying to load rubygems if you have installed gemspecs that have non-ASCII characters. ==== To reproduce ==== * Install Nokogiri, or any other gem that has non-ascii characters in its gemspec. * Run test.rb (attached) ==== Exception ==== $ ruby test.rb Encoding.default_internal = US-ASCII /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:89:in `read': "\xE9\x8B\xB8" from UTF-8 to US-ASCII (Encoding::UndefinedConversionError) from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:89:in `load_specification' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:153:in `block (2 levels) in load_gems_in' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:152:in `each' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:152:in `block in load_gems_in' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:149:in `reverse_each' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:149:in `load_gems_in' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:345:in `refresh!' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:78:in `from_gems_in' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/source_index.rb:58:in `from_installed_gems' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems.rb:883:in `source_index' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:81:in `init_gemspecs' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems/gem_path_searcher.rb:13:in `initialize' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems.rb:841:in `new' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems.rb:841:in `block in searcher' from <internal:prelude>:8:in `synchronize' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems.rb:840:in `searcher' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems.rb:479:in `find_files' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems.rb:983:in `load_plugins' from /opt/local/lib/ruby1.9/site_ruby/1.9.1/rubygems.rb:1139:in `<top (required)>' from <internal:gem_prelude>:235:in `require' from <internal:gem_prelude>:235:in `load_full_rubygems_library' from <internal:gem_prelude>:334:in `const_missing' from test.rb:12:in `<main>' ==== Suggested fix ==== Always specify the internal encoding as UTF-8 when reading gemspec files. Don't use the default internal encoding. (see attached patch) ==== My environment ==== $ gem env RubyGems Environment: - RUBYGEMS VERSION: 1.3.7 - RUBY VERSION: 1.9.1 (2010-01-10 patchlevel 378) [i386-darwin10] - INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.9.1 - RUBY EXECUTABLE: /opt/local/bin/ruby1.9 - EXECUTABLE DIRECTORY: /opt/local/bin - RUBYGEMS PLATFORMS: - ruby - x86-darwin-10 - GEM PATHS: - /opt/local/lib/ruby/gems/1.9.1 - /Users/msmith/.gem/ruby/1.9.1 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/ ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=575&aid=28212&group_id=126 _______________________________________________ Rubygems-developers mailing list http://rubyforge.org/projects/rubygems Rubygems-developers@rubyforge.org http://rubyforge.org/mailman/listinfo/rubygems-developers