ubuntu 14.04/16.04 docker镜像解决中文乱码问题
前言之前的Dockerfile基于的基础镜像都是ubuntu14.04,现在ubuntu的版本已经升到了18.04(听说有大BUG),14版本很快也不更新了,所以就准备先升级到16.04。但是在升级的过程中发现14和16版本对中文乱码的处理上有些不同,在这里记录一下ubuntu1404处理方式RUN locale-gen en_US.UTF-8ENV LANG en_US.U...
·
前言
之前的Dockerfile基于的基础镜像都是ubuntu14.04,现在ubuntu的版本已经升到了18.04(听说有大BUG),14版本很快也不更新了,所以就准备先升级到16.04。但是在升级的过程中发现14和16版本对中文乱码的处理上有些不同,在这里记录一下
ubuntu1404处理方式
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ubuntu 16.04处理方式
- 先使用locale命令查看:系统暂时不支持中文
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
- 再使用locale -a命令查看系统支持哪些语言
C
C.UTF-8
POSIX
其中C.UTF-8是支持中文的,所以需要在Dockerfile中加入如下内容
ENV LANG C.UTF-8
- 重新生成镜像后在运行locale就会发现已经支持中文了
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
更多推荐
已为社区贡献5条内容
所有评论(0)