问题描述
在使用Cygwin环境的Windows 10上,出现以下错误:
$ gem list
ERROR: Loading command: list (ArgumentError)
unkNown encoding name - CP20127
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
$ gem --version
3.0.
$ ruby --version
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-cygwin]
$ echo $LANG
en_GB
在薄荷终端(版本3.1.6)中运行
我已经有好几个月没有使用 gem 命令了。它确实可以工作一次,但是当然其中涉及的任何组件都已在几次之间进行了更新。我不知道CP20127的编码来源。在我看来,它看起来像不是有效的编码名称或Windows代码页名称,但确实似乎是Windows正在使用:
$ chcp
Aktive Codepage: 20127
我从不摆弄代码页,我想知道此设置来自何处,以及为什么它会影响我的 gem 命令。
更新
我尝试了以下操作:
chcp 850
此后,gem list
起作用。因此,罪魁祸首是代码页设置。现在我的问题是:由于我从未在任何地方明确设置代码页,最可能的原因是代码页设置不正确?
更新2
与此同时,我发现CP20127是由mintty设置的,而在另一个终端(例如,普通的Windows命令控制台或conemu控制台)中,我的外壳具有CP850。我还发现CP65001(Unicode代码页)不要破坏gem
命令。
JörgWMittag在他的评论中指出,CP20127是ASCII代码页,所以我想知道为什么gem
命令不能使用它。换句话说:是gem
中的错误(因为它不应与此CP一起纾困),还是mintty
中的错误(因为它设置了此CP),还是我错过了一些东西?还有吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)