解决docker容器中vim、nano等编辑器无法处理中文的问题(面向ubuntu)

一、先在容器里检查编码

进入容器后执行:

bash 复制代码
locale
echo $LANG
echo $LC_ALL

如果看到类似:

bash 复制代码
LANG=C
LANG=POSIX
LC_ALL=

基本就是容器没有配置 UTF-8。

二、在Ubuntu容器里安装并配置中文 UTF-8

在容器里执行:

bash 复制代码
apt update
apt install -y locales vim nano file

生成中文 UTF-8 locale:

bash 复制代码
sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=zh_CN.UTF-8

然后当前会话里立即生效:

bash 复制代码
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

再检查:

bash 复制代码
locale

应该能看到:

bash 复制代码
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

三、永久生效

前面第二步仅仅配置在临时会话里,一旦重新进入容器有可能会失效。

最好就是直接写到环境变量中:

bash 复制代码
cat >> ~/.bashrc << 'EOF'

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh
EOF

然后立即生效

bash 复制代码
source ~/.bashrc