Docker解决终端无法输入中文的问题
前言:
某日在docker里搭建了一套MySQL服务,发现在MySQL命令行内无法输入中文中文显示也以?代替,起初以为是MySQL字符集的问题检查之后未解决问题,又退出到容器终端发现同样不能输入中文,由此推断是系统字符集出现问题,现将解决过程记录如下:
未解决前:
#进入容器查看字符集 [root@master2~]#dockerexec-itb18f56aa1e15/bin/bash root@b18f56aa1e15:/#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= #查看容器支持的字符集 root@b18f56aa1e15:/#locale-a C C.UTF-8 POSIX
不能输入中文原因:系统使用的是POSIX字符集,POSIX字符集是不支持中文的,而C.UTF-8是支持中文的只要把系统中的环境LANG改为"C.UTF-8"格式即可解决问题
只要这样进入容器即可输入中文:dockerexec-itb18f56aa1e15envLANG=C.UTF-8/bin/bash
[root@master2~]#dockerexec-itb18f56aa1e15envLANG=C.UTF-8/bin/bash root@b18f56aa1e15:/#你好 root@b18f56aa1e15:/#mysql-uroot-p Enterpassword: WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis80 Serverversion:5.7.17-logMySQLCommunityServer(GPL) Copyright(c)2000,2016,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>你好
注意:
这样修改只是临时修改。要永久修改,需要在创建容器时在dockerfile中设置。
K8s进入pod不能输入中文也可用此方法解决。
以上就是Docker解决终端无法输入中文的问题的详细内容,更多关于docker解决无法输入中文的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。