一、先在容器里检查编码
进入容器后执行:
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