Cygwin 在哪里设置语言环境($LANG env var)?

Cygwin 在哪里设置语言环境($LANG env var)?

我知道我可以使用该locale工具并export LANG=...在 Cygwin 上设置我的语言环境。

然而,即使我没有%LANG%在 Windows 上定义,当我运行时bash --login,我注意到$LANG已经影响到了fr_CH.UTF-8我想要的位置en_US.UTF-8

$LANG设置在 之前/etc/lang.sh甚至 之前/etc/profile

它在哪里定义?我该如何正确地更改它?

答案1

Cygwin 在哪里设置语言环境($LANG env var)?

在应用程序启动时,应用程序的区域设置将设置为默认的“C”或“POSIX”区域设置。在 Cygwin 1.7.2 及更高版本中,此区域设置默认为应用程序级别的 ASCII 字符集。

...

如何设置区域设置

假设您已将上述环境变量之一设置为某个有效的 POSIX 语言环境值,而不是“C”和“POSIX”。进一步假设您居住在日本。您可能希望使用语言代码“ja”和地域“JP”,因此将 LANG 设置为“ja_JP”。

您没有设置字符集,那么 Cygwin 现在将使用什么?从 Cygwin 1.7.2 开始,默认字符集由该语言和地区的默认 Windows ANSI 代码页决定。Cygwin 使用的字符集是典型的 Unix 等效于 Windows ANSI 代码页的字符集。

您不想使用默认字符集?在这种情况下,您必须明确指定字符集。例如,假设您来自日本,不想使用日语默认字符集 EUC-JP,而是使用 Windows 默认字符集 SJIS。

例如,您可以在 mintty Cygwin 终端的“选项”对话框的“文本”部分中设置 LANG 变量。

在此处输入图片描述

如果您通过批处理文件或批处理文件的快捷方式启动 Cygwin 会话,那么您也可以在那里设置 LANG:

  @echo off

  C:
  chdir C:\cygwin\bin
  set LANG=ja_JP.SJIS
  bash --login -i

来源第 2 章 设置 Cygwin - 国际化

相关内容