无法使用 Ruby 安装 gem:“UTF-8 中的字节序列无效”

无法使用 Ruby 安装 gem:“UTF-8 中的字节序列无效”

我使用的是 Mountain Lion。我先用 RVM 安装了 Ruby,然后用萊本。我可以保证它运行的是最新的版本which ruby,它正确指向了安装的版本萊本

宝石无法安装任何 gem,它总是抛出同样的错误(不总是在同一个文件中,但出现同样的错误split

Users/Macbook/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/mkmf.rb:1357:in `split': invalid byte sequence in UTF-8 (ArgumentError)
    from /Users/Macbook/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/mkmf.rb:1357:in `find_executable0'
    from /Users/Macbook/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/mkmf.rb:1564:in `pkg_config'
    from extconf.rb:15:in `<main>'

我曾尝试在我的中设置这些导出.profile,但没有成功:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

我也更新了狂欢使用 brew,然后使用奇什。iTerm2 也正确配置了 UTF-8 编码。

我不知道现在还能做什么。我有 XCode 4.6.3。

答案1

问题已解决,只需清理与设置PATH环境变量(.bash_profile、、)相关的所有文件,然后重新安装即可。执行时会发现一个奇怪的字符,该字符会破坏 bundler 对 的处理。.profile.bashrcrvmecho $PATHPATH

答案2

我有 64 位 Cygwin、Ruby 2.0.0 和 gem 2.4.1,遇到了同样的问题。gem install ...,,gem update一切都以“错误:执行 gem 时...(ArgumentError)UTF-8 中的字节序列无效“。

我还将所有语言环境设置为“英文版.UTF-8“。

我在某处读到过,将其设置LANG为空字符串或“C.二进制“,但这并没有什么帮助。但这对开始实验来说是一个很好的提示。

LANG最后,我通过将和都设置LC_ALL为空字符串解决了这个问题。所有其他区域环境变量(LC_CTYPE等)都自动设置为“C.UTF-8”,LANG并且LC_ALL保持为空。

现在gem终于可以工作了。

我猜你也有同样的原因。当你“清理”了你的点文件时,你可能已经更改了你的语言环境的值。

相关内容