当我尝试运行"bundle install"时,我得到了一个奇怪的错误:"US-ASCII中的无效字节序列(ArgumentError)"
$ bundle install
Updating git://github.com/devton/catarse_paypal_express.git
Unfortunately, a fatal error has occurred. Please see the Bundler
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:294:in `block in load_gemspec_uncached': invalid byte sequence in US-ASCII (ArgumentError)
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:291:in `chdir'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:291:in `load_gemspec_uncached'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:282:in `load_gemspec'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:411:in `block in load_spec_files'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `each'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `load_spec_files'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:799:in `load_spec_files'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:381:in `local_specs'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:774:in `specs'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:491:in `block in converge_locked_specs'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `each'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `converge_locked_specs'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:166:in `resolve'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:113:in `specs'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:108:in `resolve_remotely!'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/installer.rb:81:in `run'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/installer.rb:14:in `install'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/cli.rb:230:in `install'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/task.rb:27:in `run'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor.rb:275:in `dispatch'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/base.rb:408:in `start'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/bin/bundle:14:in `block in <top (required)>'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:4:in `with_friendly_errors'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/bin/bundle:14:in `<top (required)>'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `load'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `<main>'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/ruby_noexec_wrapper:14:in `eval'
from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/ruby_noexec_wrapper:14:in `<main>'
我确实找到了这个变通方法(对我有效):
if RUBY_VERSION =~ /1.9/
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
end
但我认为后来它会导致另一个错误,所以我宁愿不使用它,只想了解这里到底出了什么问题。我确信同样的代码在不同的系统上工作。。。
作为一种变通方法,您可以在系统中设置utf8语言环境:
export LANG="C.UTF-8"
export LC_ALL="C.UTF-8"
有关这方面的更多信息,请点击此处