Docker容器(Debian)内终端的中文展示与输入问题
前言
使用docker容器作为开发环境。以Debian11镜像启动容器,出现两个问题:
- 无法展示中文,ls输出的都是八进制编码的字符串;
- 终端无法输入中文,粘贴可以但同学展示为八进制字符串;
locale
经查阅,确定问题是系统语言环境导致,默认使用的语言环境不支持中文编码!
使用 locale
查看当前使用的字符集:
1 | root@docker-desktop:~/workspace# locale |
显然,当前我使用的Debian11镜像默认使用的是POSIX
字符集!
可以使用 locale -a
查看当前系统支持的字符集:
1 | root@docker-desktop:~/workspace# locale -a |
在 Debian 使用指南中关于 locale
中看到:
You can set
LANG
orLC_ALL
to your preferred locale.
然后,将 LANG
环境变量设置成 C.UTF-8
,这个系统支持的中文字符集!
设置方式有多种,在~/.bashrc
文件、进入容器通过env
变量设置或者通过dockerfile
,详细不展开!
设置成功后可以通过 locale
命令查看:
1 | root@docker-desktop:/# locale |
总结
Debian容器终端无法展示和输入中文,这个问题的原因之一是:系统默认使用不支持中文编码的字符集;
可以使用
locale
查看当前系统使用的字符集,使用locale -a
列出当前系统支持的字符集;通过设置
LANG
环境变量可以修改系统使用的字符集;