在OS X Lion中,LANG未设置为UTF-8,如何解决?

mam*_*mcx 140 macos terminal encoding utf-8

我尝试在OS X Lion中设置postgress,并发现没有正确设置LOCALE环境var.

这是设定的:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

我期待UTF-8的东西.这是一个干净的OS X Lion设置,具有西班牙语.我什么都不动.

我不知道如何设置UTF-8.

在终端设置中,检查UTF-8并将LOCALE设置为打开,尽管不起作用.

wor*_*ude 290

登录到从OSX Lion机器运行Red Hat的服务器时,我注意到了完全相同的问题.

尝试~/.profile为其添加或编辑文件,以便在启动新会话时正确导出区域设置.

export LC_ALL=en_US.UTF-8  
export LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

添加到文件中的这两行应足以设置语言环境[替换en_US为您所需的语言环境,并事先检查它确实安装在您的系统上(locale -a)].

之后,您可以开始新会话并使用locale以下方式检查:

$ locale
Run Code Online (Sandbox Code Playgroud)

以下应该是输出:

LANG="en_US.UTF-8"  
LC_COLLATE="en_US.UTF-8"  
LC_CTYPE="en_US.UTF-8"  
LC_MESSAGES="en_US.UTF-8"  
LC_MONETARY="en_US.UTF-8"  
LC_NUMERIC="en_US.UTF-8"  
LC_TIME="en_US.UTF-8"  
LC_ALL="en_US.UTF-8"  
Run Code Online (Sandbox Code Playgroud)

  • 我的主文件夹上有一个`.bash_profile`,当`.bash_profile`存在时,`.profile`没有被提供.我需要在`.bash_profile`中手动输入`.profile` (11认同)
  • 链接无效. (7认同)
  • 另外,我最初在使用iTerm2时注意到了这个问题.这种解决方法似乎适用于iTerm2和终端. (2认同)
  • 太棒了,做了它,只是一个音符,一旦你使用zsh,不要像我一样愚蠢...配置有`〜/ .zshrc` ...好吧现在就像一个魅力 (2认同)
  • 没有理由同时设置“LANG”和“LC_ALL”。仅应设置“LANG”。首先,它们都执行相同的操作 - 为所有语言环境变量(例如“LC_TIME”、“LANGUAGE”)设置默认值 - 其中“LC_ALL”优先于“LANG”。“LANG”是用于标准配置的配置,而“LC_ALL”仅用于调试目的(因为它会覆盖其他所有内容)。[一些参考](https://wiki.archlinux.org/index.php/Locale#Variables) (2认同)

Fre*_*icK 17

我最近在OS X Sierra上遇到了与bash shell相同的问题,并且由于上面的答案我只需要编辑该文件

~/.bash_profile 
Run Code Online (Sandbox Code Playgroud)

并附加这些行

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)


小智 7

这是一个很长时间的破解者.我现在看到它是OSX ..我在系统范围内进行了更改,它完美无缺

当我添加这个时,Centos6和Fedora中的LANG也是我的首选LANG.您还可以在终端设置(OSX)/ etc/profile中"取消选中"导出或设置区域设置

export LC_ALL = en_US.UTF-8
export LANG = en_US.UTF-8


小智 5

如果您已安装zsh,也可以~/.zprofile使用

if [[ -z "$LC_ALL" ]]; then
  export LC_ALL='en_US.UTF-8'
fi
Run Code Online (Sandbox Code Playgroud)

并使用localecmd 检查输出,如上所示

? locale                                                                                                                                           
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)