我的macOS的Terminal总是显示错误信息(运行man或wget时):
Unknown locale, assuming C
我运行local
命令查看了一下:
LANG=""
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
LANG
真的没有设置!这个设置是在Terminal启动的时候,Terminal
的Settings
/ Profiles
有个选项:Set locale environment variables on startup
选中此选项会读取System Settings
里面的General
/ Language & Region
中的本地化设置,并用这个设置初始化Terminal
的相关环境变量。
初步估计这个恼人的警告是因为:本机的本地化信息是在EN-US
的基础上修改了一些默认值(如:华氏温度改为了摄氏温度,日期货币数字的格式……)。使得系统无法自动判断我的local
类型,根据这个猜想,解决方法有两点:
- 方法1:disable掉
Terminal
设置里面的选项:Set locale environment variables on startup
- 方法2:在
shell
的rc
文件中指定export LANG="en_US.UTF-8"
(我的shell
为zsh
,rc
文件是~/.zshrc
)