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

前言:

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

未解决前:

# 进入容器 查看字符集
[root@master2 ~]# docker exec -it b18f56aa1e15 /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"格式即可解决问题

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

[root@master2 ~]# docker exec -it b18f56aa1e15 env LANG=C.UTF-8 /bin/bash
root@b18f56aa1e15:/# 你好
root@b18f56aa1e15:/# 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解决无法输入中文的资料请关注我们其它相关文章!

(0)

相关推荐

  • 分享Ubuntu19无法安装docker源问题

    按照各大网站以及个人习惯我会使用下面这种方法添加Docker源: root@ubuntu:~# sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" 然而使用上面这条命令给我带来了无尽的烦恼,甚至我都怀疑我是不是一个合格的linux工程师了,使用了这条命令提示以下错误: Ign:1 https://mi

  • docker日志出现无法检索问题的解决

    日常检查服务的时候,从portainer那里进去看容器日志的时候,发现右上角出现红色的感叹号:Unable to retrieve container logs. 因为之前没出现过这样的问题,所以就先上服务器上用命令docker logs -f containerID看日志,发现日志也是动不了,还是停留在某个时间的日志记录上. 想了一下不应该是服务的日志打印出问题,先照着Google搜索了一遍,发现都没有跟我的问题相匹配的.因为日志有时能收集显示,有些日志不可以,应该是跟docker设置的日志引

  • docker中的环境变量使用与常见问题解决方案

    前言 docker可以为容器配置环境变量.配置的途径有两种: 在制作镜像时,通过ENV命令为镜像增加环境变量.在容器启动时使用该环境变量. 在容器启动时候,通过参数配置环境变量,如果与镜像中有重复的环境变量,会覆盖镜像的环境变量. 使用docker exec {containerID} env即可查看容器中生效的环境变量. [root@localhost ~]# docker exec 984 env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/

  • Docker 安装 Jenkins 并解决初始安装插件失败问题

    安装 Jenkins 后,初始化下载插件总是失败,导致安装不成功,重试好几次都是卡在安装插件那. 这里记录下 Docker 下怎么安装 Jenkins ,并解决初始安装插件失败问题. 安装插件失败,其实是拉取了官方的 Jenkins 镜像,然后在初始化安装插件时,会从国外的网站去获取,导致安装非常缓慢,或者安装失败.最好的解决方案时拉取 Jenkins 中文社区 提供的 Jenkins 镜像,即可解决.Jenkins 中文官网 :https://www.jenkins.io/zh/ 安装步骤获取

  • Docker 常见问题解决

    Docker映射端口时仅有IPv6无法到IPv4 启动 docker 某服务,只显示 ipv6 的端口信息.ipv4 无端口信息,导致外部无法通过 ipv4 访问服务,报 Connection refused 错误 解决方法 在服务器上禁用 ipv6 vim /etc/default/grub 在第6行中增加 ipv6.disable=1 GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto spectre_v2=retpoline rd.lvm

  • Docker环境搭建Jenkins在构建任务时控制台日志出现中文乱码的问题

    一.问题描述: 在Linux环境Centos操作系统下,通过Docker下载Jenkins镜像后创建了容器,并且通过服务器IP+端口访问Jenkins地址,进行相关的配置,然后创建任务job来构建跑java+selenium自动化测试脚本,目前构建Success,唯一不足之处是打印的日志出现就了乱码,如下图: (备注:执行机就是jenkins本身,同一台机器) 二.排查Jenkins设置 Jenkins系统设置查看全局属性中语言部分 2.Jenkins详细信息(浏览器Jenkins地址后面加上/

  • Docker暴露2375端口导致服务器被攻击问题及解决方法

    相信了解过docker remote API的同学对2375端口都不陌生了,2375是docker远程操控的默认端口,通过这个端口可以直接对远程的docker daemon进行操作. 当$HOST主机以docker daemon -H=0.0.0.0:2375方式启动daemon时,可以在外部机器对$HOST的docker daemon进行直接操作: docker -H tcp://$HOST:2375 ps 好,说说如何"入侵",怎么通过这个端口入侵宿主机呢? 这个应该要从几个点说起

  • 解决docker容器无法ping外网的问题

    今天在docker搭建redis环境的时候,发现yum拉取不到资源,上不到网,报了如下错误: http://mirrors.aliyun.com/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'mirrors.aliyun.com'" Trying other mirror. http://mirrors

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

    前言: 某日在docker里搭建了一套MySQL服务,发现在MySQL命令行内无法输入中文 中文显示也以?代替,起初以为是MySQL字符集的问题 检查之后未解决问题,又退出到容器终端 发现同样不能输入中文,由此推断 是系统字符集出现问题,现将解决过程记录如下: 未解决前: # 进入容器 查看字符集 [root@master2 ~]# docker exec -it b18f56aa1e15 /bin/bash root@b18f56aa1e15:/# locale LANG= LANGUAGE=

  • dos命令行不能输入中文怎么办该如何解决

    dos命令行不能输入中文的解决办法 复制代码 代码如下: reg add "HKEY_CURRENT_USER\Console" /v "LoadConIme" /d 1 /t REG_DWORD /f 首先检查 system32 文件夹下 conime.exe 文件存不存在,如果不存在,就到别的电脑去复制一个过来,然后关掉所有的控制台窗口,在"开始"->"运行"中输入如下内容并执行: reg add "HKE

  • silverlight2.0Beta版TextBox输入中文解决方法

    新写一个TextBoxEx控件,继承于TextBox,并对TextBox的选择事件及字符改变事件做处理,以下是原代码 复制代码 代码如下: /************************************************************************/ /* 作者:覃小春 时间:20080826 说明:解决silverlightBeta2中TextBox中文输入问题 * blog:blog.csdn.net/colijian */ /*************

  • mysql输入中文出现ERROR 1366的解决方法

    MySQL输入中文出现如下错误: ERROR 1366: 1366: Incorrect string value: '\xE6\xB0\xB4\xE7\x94\xB5...' for column 'introduce' at row 1 这是因为mysql编码的问题 打开mysql mysql -u root -p 输入密码后,输入下面这一行代码来显示mysql当前使用的编码: SHOW VARIABLES LIKE 'character%'; 由上 图能看出,database和server

  • 一条命令解决mac版本python IDLE不能输入中文问题

    安装完Python通常自动就有了一个简易的集成环境IDLE,但在mac上,无法在IDLE中使用中文. 通常故障有两种情况: 1.在IDLE中,中文输入法根本无法工作,不会弹出输入框,所有的输入都被当做英文对待. 这种情况是由于IDLE使用了Tkinter 图形库,Tkinter使用的依赖库Tcl/Tk,在macOS中已经有了一个较低的内置版本,这造成了中文无法输入的问题,解决办法可以重新安装使用高版本Tcl/Tk编译的python,在Homebrew下只需要一条命令: brew reinstal

  • CentOS7下实现终端输入中文设置详解

    (1)首先打开系统的设置,点击区域和语言 (2)点击+号选择汉语(Intelligent Pinyin) (3)然后突出点击右上角切换到汉语拼音,这样就可以在终端输入汉字了. 附: 如果系统中没有汉语(pinyin),则在终端下输入以下命令进行安装. yum install ibus-libpinyin 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.

  • MySQL命令无法输入中文问题的解决方式

    发现问题 近期通过 mysql 命令连接 mysql server 的时候, 出现了不能输入中文的现象, 如下所示: mysql> SELECT 'Chinese characters <> are stripped'; +------------------------------------+ | Chinese characters <> are stripped | +------------------------------------+ | Chinese ch

  • 解决IDEA的Terminal中文乱码问题

    当我提交项目输入中文描述信息的时候,发现IDEA 的 Terminal无法显示中文信息,显示的是下面这样的 因为我的终端设置了git.bash窗口,所以我以为是git乱码问题,我打开gitBash输入,发现中文没有乱码,显示的是正常的,如下: 所以这应该是IDEA的问题,上网查了一下说需要在IDEA的安装路径找到idea.exe.vmoptions文件和idea64.exe.vmoptions文件,在其最后一行添加 -Dfile.encoding=UTF-8 然后重启IDEA,重新输入命令,发现

  • VBS利用SendKeys输入中文字符的方法

    首先我们看一个输入字母的例子: 复制代码 代码如下: set s = WScript.CreateObject("WScript.Shell") app=s.Run ("C:\windows\notepad.exe") code="biweilun" WScript.Sleep 1000 s.AppActivate app s.SendKeys code Wscript.quit 这段vbs会SendKeys方法的朋友就知道,作用是打开一个记事本

  • Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办

    项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空. 由于是使用GET方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码. try { realName = new String(realName.getBytes("GBK"), "UTF-8"); } catch (UnsupportedEncodingException exce

随机推荐