linux(05) - docker容器内中文显示乱码(8进制反斜杠)问题

背景:

在容器内,发现无法识别文件夹中文名,以及文件内中文,也都是如下这种八进制形式:

#这是文件夹名“测试” ls的输出
#应该输出  "测试"
\346\265\213\350\257\225 

我以为是我用的shell环境问题(zsh),后来发现,即便在~/.zshrc中加入了

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

还是不行

一番查找后,发现是,根本没有en_US.UTF-8这个东西,于是明白了,因为是容器嘛,不像桌面端系统一样经历了图形界面的安装。

解决方案:

① 先安装locales,这个包在Debian/Ubuntu及其衍生发行版中用作区域设置,用于设置用户语言、所在地区以及对应的一些区域变量

sudo apt install locales

② 重新设置locales相关信息

sudo dpkg-reconfigure locales

它会给出一大堆,让你选择,你只需要找到en_US.UTF-8和zh_CN.UTF-8的编号,我这里是158 488,于是

(Enter the items you want to select, separated by spaces.)
(input) 158 488

Locales to be generated: (input) 158 488

然后你选择一个为默认语言,出现下面的信息,就算成功

Generating locales (this might take a while)...
  en_US.UTF-8... done
  zh_US.UTF-8... done
Generation complete.

然后,识别中文就不会出现乱码了,对在容器内读git的log比较友好。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值