很多人在程序中会处理 non-ASCII 字符,在日志中,在终端显示中等等。

locales installs

检查 locales 是否安装

dpkg -l locales

如果 locales 之前显示 ii 表示已经安装了,否则

sudo apt install locales

重新配置

dpkg-reconfigure locales

locales 配置

使用命令 locale 查看配置

locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

.bashrc 中放入如下设置:

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

Q & A

某些情况下在终端 less /path/to/logfile 会显示 \u 开头的中文编码,这是 unicode 编码,大部分情况下 less 会使用 UTF-8 去查看文件。但是如果文件编码格式非 UTF-8 那么可能会有些问题。

使用 file /path/to/file 来查看文件的编码。

reference