首页 > 其他分享 >docker容器不显示中文

docker容器不显示中文

时间:2024-04-23 11:45:55浏览次数:34  
标签:LANG 容器 中文 zh LC utf8 设置 docker CN

打算搬迁自己的笔记到组里的服务器上,又因为是服务器,对环境限制比较多,不会随便安装一些包和lib库,所以大家基本上都是docker开自己的容器用。

然后:

image-20240314104511933

终端无法显示中文,实际上zsh的命令补全还是能显示中文的,但是终端就是不行

image-20240314104637839

按照找到的教程,localelocale -a查看本地正在使用以及支持的字符集:

image-20240314104823601

这里看到LC_ALL=C,按照某个教程里的说法,C就是POSIX,是不支持中文显示的,修改为zh_CN.utf8或者C.utf8就可以了,实测都是有效的,似乎是排序上有一些不同

image-20240314105152076

后记

关于各种LC_*变量以及LANG变量,看到的说法是LC_ALL是指定所有的字符集设置[1],看到很多教程上说让修改LANG变量,实际上试了一下是没用的

比如LANG=C.utf8LC_ALL=C,可以看到还是显示不了中文:

image-20240314105437274

包括把LANG设置为zh_CN.utf8也没有用:

image-20240314105558850

总的来说就是,只要LC_ALL是不支持中文字符的C,修改LANG就没有用,主要是LC_ALL变量的设置,因为设置了LC_ALL变量,其他的LC_*变量也都修改了,但是只设置LANG就会只修改LANG,如图修改LC_ALL

image-20240314105921600

and,很多教程里有的地方写的是zh_CN.UTF-8,有的是zh_CN.utf-8,测试了一下,设置LC_ALL=zh_CN.UTF-8也是有效的,但我觉得还是和locale -a的某一行输出(for example zh_CN.utf8)里保持一致可能会好一点,这一点可能需要去翻一翻文档去确认一下怎么设置最规范,但是我没有去翻

如果locale -a输出里没有自己需要的字符集,可以通过dpkg-reconfigure locales安装,如果显示没有locales,需要安装locales[2]

后后记

无语,忘记是什么时候的事,.zshrc里我自己添加了字符集的设置:

image-20240314111948828

我就说为什么设置了/etc/environment没有用,总之,不管是/etc/environment还是.zshrc,能把LC_ALL变量设置成zh_CN.utf8而不是C就行

References


  1. LOCALE]字符集设置 - Linux Guide (zj-linux-guide.readthedocs.io) ↩︎

  2. 明眸如初 (zywvvd.com) ↩︎

标签:LANG,容器,中文,zh,LC,utf8,设置,docker,CN
From: https://www.cnblogs.com/rainNwN/p/18152516

相关文章

  • 使用 Docker 部署 TailChat 开源即时通讯平台
    1)介绍TailChat官网:https://tailchat.msgbyte.com/作者:https://www.moonrailgun.com/about/GitHub:https://github.com/msgbyte/tailchatTailChat是一款插件化易拓展的开源IM应用。可拓展架构赋予Tailchat无限可能性。前端微内核架构+后端微服务架构。使得Tailchat......
  • docker网络
    一:docker网络基础知识1:网络驱动docker网路子系统使用可插拔(理解一下)的驱动,默认的情况下有多个驱动的程序,并且提供核心的联网的功能1、bridge:桥接网络,这个是默认的网络驱动程序,不指定驱动成创建的容器默认是bridge驱动2、host:主机网络,消除了容器和主机网络隔离,直接使用主机的网......
  • map容器
    作为关联式容器的一种,map容器存储的都是pair对象,也就是用pair类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括C++基本数据类型(int、double等)、使用结构体或类自定义的类型。与此同时,在使用map容器存储多个键值对时,该容器会自动根据各键值对的键的大小......
  • ferry工单系统部署(docker)
    1.部署说明ferry工单系统部署参考官方文档,采用docker-compose的方式。 2.github地址https://github.com/lanyulei/ferry?tab=readme-ov-file#readme 3.部署步骤注:mysql、redis的镜像可以从dockerhub上下载,地址:https://hub.docker.com/ 3.1部署mysql(5.7.29),此处......
  • 使用Docker搭建MongoDB 5.0版本副本集集群
    1、mongodb集群首先我们需要了解mongodb的集群模式,mongodb安装分为单机安装和集群安装。集群安装分为:主从复制(Master-Slaver)集群、副本集(ReplicaSet)集群和分片集群(ShardedCluster)。MongoDB的主从复制(Master-SlaveReplication)已不再是官方推荐的特性,并且在未来的版本中可能会被......
  • multiset容器
    和set容器不同的是,multiset容器可以存储多个值相同的元素。multiset容器类模板的定义如下所示:template<classT,//存储元素的类型classCompare=less<T>,//指定容器内部的排序规则classAlloc=allocator<T......
  • Spring 源码阅读(二)IoC 容器初始化以及 BeanFactory 创建和 BeanDefinition 加载过程
    相关代码提交记录:https://github.com/linweiwang/spring-framework-5.3.33IoC容器三种启动方式XMLJavaSE:ApplicationContextcontext=newClassPathXmlApplicationContext("beans.xml")ApplicationContextcontext=newFileSystemXmlApplicationContext("C:/beans......
  • 容器结构分类
    容器结构分类容器在内存的布局方式红黑树高度平衡二分树,树的左边和右边会自己调整高度,避免查找的时候找到某一种很长的线一直找下去set和map都有红黑树实现HashTable链表过长链表的查找要一个一个查找.链表过程会导致速度过慢设置每一个链表不能过长如果过长就会通......
  • 容器使用之multiset
    容器使用之multiset可以理解为小型关联数据库底层结构:红黑树示例代码:#pragma#ifndef__MULTISET__#define__MMULTISE__​#include<set>#include<iostream>​usingnamespacestd;​namespaceMyTestSet{voidtest_set(long&value){multiset<string>c;/......
  • docker 命令
    ###docker进程操作1查看docker的配置dockerinfo2根据overlay2下的目录查找对应的容器dockerps-q|xargsdockerinspect--format'{{.State.Pid}},{{.Id}},{{.Name}},{{.GraphDriver.Data.WorkDir}}'|grep"目录id"3 根据pid进程号查看时哪个容器cat/p......