为什么当 运行 来自 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=
这是我目前的发现
- 这只发生在 JetBrains IDE 中的终端 -- 我已经尝试了 PyCharm 和 JGrasp,它们都受到了影响。在 OSX 终端应用程序中 运行 时,wget 输出英文文本。仍然很高兴知道为什么会发生这种情况以及如何解决它。
- 这个问题似乎只影响wget
- 使用 brew 重新安装 wget 似乎没有任何效果。
- /usr/local/Cellar/wget/1.19.4_1/share/locale/ 中没有
en_US
语言环境,但我不知道这是否是我的问题的原因.
- 将 .../en_GB/(其中 ... 是 wget 的语言环境文件夹)复制到一个名为 .../en_US/ 的新文件夹中并没有删除俄文文本。也不会用 .../en_GB/ 替换 .../ru/。我不确定语言环境是如何定义的,所以这可能意味着也可能没有任何意义。
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
以查看它是否让它们永远远离。
出于某种原因,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=
这是我目前的发现
- 这只发生在 JetBrains IDE 中的终端 -- 我已经尝试了 PyCharm 和 JGrasp,它们都受到了影响。在 OSX 终端应用程序中 运行 时,wget 输出英文文本。仍然很高兴知道为什么会发生这种情况以及如何解决它。
- 这个问题似乎只影响wget
- 使用 brew 重新安装 wget 似乎没有任何效果。
- /usr/local/Cellar/wget/1.19.4_1/share/locale/ 中没有
en_US
语言环境,但我不知道这是否是我的问题的原因. - 将 .../en_GB/(其中 ... 是 wget 的语言环境文件夹)复制到一个名为 .../en_US/ 的新文件夹中并没有删除俄文文本。也不会用 .../en_GB/ 替换 .../ru/。我不确定语言环境是如何定义的,所以这可能意味着也可能没有任何意义。
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
以查看它是否让它们永远远离。