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
LANGorLC_ALLto your preferred locale.
然后,将 LANG 环境变量设置成 C.UTF-8,这个系统支持的中文字符集!
设置方式有多种,在~/.bashrc文件、进入容器通过env变量设置或者通过dockerfile,详细不展开!
设置成功后可以通过 locale 命令查看:
| 1 | root@docker-desktop:/# locale | 
总结
- Debian容器终端无法展示和输入中文,这个问题的原因之一是:系统默认使用不支持中文编码的字符集; 
- 可以使用 - locale查看当前系统使用的字符集,使用- locale -a列出当前系统支持的字符集;
- 通过设置 - LANG环境变量可以修改系统使用的字符集;