解决Ubuntu Docker容器中文乱码的问题

有以下几种方法去适应多种情况

配置 Dockerfile 镜像,永久生效

在 Dockerfile 中添加以下配置:

1
ENV LANG C.UTF-8

在运行的容器中,进行修改

先输入locale -a,查看一下现在已安装的语言,已经有C.UTF-8字符集

输入locale查看下语言情况,显示语言不正确。

通常设置LANG、LANGUAGE、LC_ALL这三个就行了。
关于他们三的关系简言之:
LANG 默认设置,LC_ALL 没设值的时候就拿 LANG;LANGUAGE 是程序语言设置;LC_ALL 强制设置所有 LC

所以让已经安装好的 C.UTF-8 应用到 LC_ALL 上,在/etc/bash.bashrc里面末尾写入,然后source /etc/bash.bashrc。

1
export LC_ALL="C.UTF-8"

输入locale查看下语言情况,显示没有设置成功。

登出在登陆查看下,设置成功。

在运行的容器中,安装字符集

先输入 locale -a,查看一下现在已安装的语言。如果没有zh_CN.utf8就需要安装中文字符集和设置中文字符支持。

1
2
3
4
5
6
7
# 如果安装 language-pack-zh-hans 失败,那么需要更新下系统。
# apt-get update & apt-get upgrade。
# 安装字符集
apt-get install -y language-pack-zh-hans;
# 添加中文支持
# zh_CN.UTF-8 等于 zh_CN.utf8
locale-gen zh_CN.UTF-8;

其他的按  2  进行就 OK。或者可以重启 docker 容器


解决Ubuntu Docker容器中文乱码的问题
https://sunshinechen.cn/2024/01/18/解决Ubuntu Docker容器中文乱码的问题/
作者
sunshine
发布于
2024年1月18日
许可协议