Docker终端无法输入中文问题解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker终端无法输入中文问题解决相关的知识,希望对你有一定的参考价值。

前言: 某日在docker里搭建了一套mysql服务,发现在MySQL命令行内无法输入中文 中文显示也以?代替,起初以为是MySQL字符集的问题 检查之后未解决问题,又退出到容器终端 发现同样不能输入中文,由此推断 是系统字符集出现问题,现将解决过程记录如下:

未解决前:

# 进入容器 查看字符集
[[email protected] ~]# docker exec -it b18f56aa1e15 /bin/bash
[email protected]:/# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
# 查看容器支持的字符集
[email protected]:/# locale -a
C
C.UTF-8
POSIX

不能输入中文原因:系统使用的是POSIX字符集,POSIX字符集是不支持中文的,而C.UTF-8是支持中文的 只要把系统中的环境 LANG 改为"C.UTF-8"格式即可解决问题

只要这样进入容器即可输入中文: docker exec -it b18f56aa1e15 env LANG=C.UTF-8 /bin/bash

[[email protected] ~]# docker exec -it b18f56aa1e15 env LANG=C.UTF-8 /bin/bash
[email protected]:/# 你好
[email protected]:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 80
Server version: 5.7.17-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the current input statement.

mysql> 你好

注意:这样修改只是临时修改。要永久修改,需要在创建容器时在dockerfile中设置。
K8s进入pod不能输入中文 也可用此方法解决。

以上是关于Docker终端无法输入中文问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Docker方式启动的MySQL终端中无法输入中文问题解决

终端下vim无法输入问题解决

完美解决苹果电脑mac终端无法输入大写T的问题

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

vscode终端打开显示空白而且无法输入,重启,卸载重装都无法解决。

CentOS7 启动Docker后进入tty命令行界面无法退出的解决方式