为什么当 运行 来自 PyCharm 的终端时 wget 以俄语打印所有消息?

Why is wget printing all messages in Russian when run from the terminal in PyCharm?

出于某种原因,wget 已开始以俄语打印其所有消息,但仅当 运行 来自 PyCharm 的终端时。为什么会发生这种情况,如何将其改回英文?

我正在使用 OSX 10.13,并且正在使用使用 Homebrew 安装的 wget 1.19。4_1。我以前在这台电脑上用过wget,文字是英文的。我不懂俄语,所以这台电脑上的任何东西都没有设置为使用俄语。

当我运行...$ locale时,结果是这样的:

LANG=
LC_COLLATE="C"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

这是我目前的发现

jGRASP 使用 pty 连接到外部程序,其他一些 IDEs 可能也在做同样的事情。因此,有可能新的 ptys 创建这些 IDE 的方式默认为错误的语言环境。

从 jGRASP 或另一个 IDE 您可以编译 运行 一个 Java 或 C 程序来打印默认语言环境以验证这一点。对于 Java 它是 java.util.Locale.getDefault() .

jGRASP pty 连接的源位于 .../jGRASP.app/Contents/Resources/jgrasp/src/wedge.c 中。您可以在那里看到 pty 是如何创建的。您也可以修改并重新编译为 .../jgrasp/jbin/osx_run 如果它有助于追查问题。在 OS X 上编译不需要特殊参数,只需:cc -o ../jbin/osx_run wedge.c .

这只是发生在我身上,除了法语。

我的修复:在终端中强制使用 lang 值

导出 LC_ALL=en_US.UTF-8<br> 导出 LANG=en_US.UTF-8

这让我很高兴;我现在已将它们添加到 ~/.profile 以查看它是否让它们永远远离。