我知道我可以使用该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