C/C++教程

centos 镜像中文乱码

本文主要是介绍centos 镜像中文乱码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

解决 centos 镜像中文乱码

centos 的官方镜像是不带中文环境的,导致在读取带有中文的配置文件时一直报错,即使中文在注释里。

有两种方案:

1. 在容器中修改语言环境

  1. 拉取 centos 镜像docker pull centos:centos7
  2. 创建一个 centos7 容器 docker run --name server -itd centos:centos7
  3. 进入容器docker exec -it server bash
  4. 使用locale查看当前语言环境,查询结果:
    LANG=
    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=
    
  5. 添加中文环境编码,安装两个包
    yum install kde-l10n-Chinese -y
    yum install glibc-common -y
    
  6. 转化语言环境和字符集
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
  7. 添加定义到系统环境变量vi /etc/profile,添加
    export LC_ALL=zh_CN.utf8
  8. 执行生效
    source /etc/profile

2. 使用 Dockerfile 构建一个新的带有中文环境的镜像

FROM centos
MAINTAINER djl #设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
#RUN export LANG=zh_CN.UTF-8
#RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf
#ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8

参考博客:
Dockerfile 创建容器内中文乱码问题解决
解决 docker 容器中 Centos7 系统的中文乱码

这篇关于centos 镜像中文乱码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!