美文网首页
docker 学习 - 解决ubuntu镜像中文乱码问题

docker 学习 - 解决ubuntu镜像中文乱码问题

作者: 小代码 | 来源:发表于2018-05-11 15:30 被阅读0次

    1. 配置Dockerfile镜像时,永久修改。

    在 Dockerfile 中添加

    ENV LANG C.UTF-8
    # ENV LANGUAGE C.UTF-8 #可不配置
    # ENV LC_ALL C>UTF-8 #可不配置
    
    Dockerfile example

    2. 在运行的Container中,进行修改。

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

    locale -a

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

    图片里显示语言不对
    通常设置`LANG、LANGUAGE、LC_ALL`这三个就行了。
    关于他们三的关系简言之:
    LANG默认设置,LC_*没设值的时候就拿LANG;LANGUAGE是程序语言设置;LC_ALL强制设置所有LC_*
    详细传送门: [https://blog.csdn.net/nick357/article/details/8513699]
    

    /etc/bash.bashrc里面末尾写入,然后source /etc/bash.bashrc

    export LC_ALL="C.UTF-8"
    

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

    image.png

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


    image.png

    3. 在运行的Container中,安装新字符集进行修改。

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

    # 如果安装 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容器
    传送门:http://www.nikochan.cc/2017/10/30/DockerSolution/ 经检查,里面的临时修改方法是无效的


    4. 启动时或进入bash时候,设置字符集

    # env LANG=C.UTF-8 /bin/bash bash运行env设置LANG环境
    docker run -i -t ubuntu env LANG=C.UTF-8 /bin/bash
    
    docker run -i -t ubuntu env LANG=C.UTF-8 /bin/bash

    or

    docker exec -it ww env LANG=C.UTF-8 bash
    
    docker exec -it ww env LANG=C.UTF-8 bash

    传送门:http://blog.shiqichan.com/Input-Chinese-character-in-docker-bash/

    相关文章

      网友评论

          本文标题:docker 学习 - 解决ubuntu镜像中文乱码问题

          本文链接:https://www.haomeiwen.com/subject/lfkfdftx.html