默认情况下,Terminal将区域设置环境变量设置为与Terminal所使用的当前所选语言和时间/日期/数字格式相匹配,该格式是通过以下方式选择的
系统偏好设置>语言和文本
(这是Lion上的名称。在较早的系统上,首选项面板的确切名称可能有所不同。)
临时解决方案是将英语拖到语言列表的顶部,然后打开“终端”,然后将立陶宛语移回顶部。然后,只有Terminal才是英文。但是,如果退出并重新启动Terminal,它将重置为立陶宛语。
一种持久的方法是通过关闭终端来告诉终端不要设置区域设置环境变量
终端>首选项>设置> [配置文件]>高级>在启动时设置区域设置环境变量
然后,语言环境将默认为“ C”,而未指定语言,并且大多数程序将默认为英语。
请注意,关闭此功能意味着某些程序将不知道Terminal使用的是哪种字符编码,并且将假定它仅是ASCII或ISO-Latin-1。因此,如果Terminal使用的是UTF-8(默认设置),则这些程序可能会或可能不会按预期运行。
如果这主要是关于wget
,我建议您复制默认设置配置文件,关闭自定义配置文件中的区域设置,并仅在使用时使用该配置文件wget
,以便您可以在完全支持的情况下继续使用UTF-8使用其他程序时,请使用默认设置。
如其他人所提到的,您还可以在Shell启动脚本中覆盖Terminal提供的初始语言环境设置。对于zsh,将其放在〜/ .zshrc中。对于bash,请使用〜/ .bashrc(如果还没有,请创建一个运行〜/ .bashrc的〜/ .bash_profile)。
有关每个语言环境值的更多信息,请参见x-man-page:// 1 / locale。
但是,如果您只是unset LANG
将其设置为“ C”或将其设置为“ C”,那么通常这将适用于所有外壳程序和程序,而在大多数情况下,您可能希望使用UTF-8并让Terminal设置要匹配的语言环境变量,以获得最高程度的合作,保真度和功能性。
因此,如果您要走这条路,建议您编写代码来编辑(而不是替换)初始值,以便保留编码信息(“ UTF-8”),而仅将语言强制为英语,而不是将变量设置为“ C”。
例如,这在zsh和bash中有效:
# Replace Lithuanian with English
export LANG=${LANG/lt_LT/en_US}
何时LANG="lt_LT.UTF-8"
,它将更改为LANG="en_US.UTF-8"
。我没有wget
测试的方法,但这足够了。
这样做意味着如果您在Terminal中更改字符编码首选项,则不会在Shell启动脚本中覆盖它。
wget
?会locale
显示什么,并且与您在“ 语言和文本”系统首选项窗格中选择语言所期望的结果相同?