【问题标题】:can't write ñ, ä, ë, ü in a ubuntu docker container不能在 ubuntu docker 容器中写 ñ、ä、ë、ü
【发布时间】:2017-07-04 00:34:42
【问题描述】:

我需要能够在 ubuntu docker 容器的控制台中编写 ñ、ä、ë、ü。 我使用以下 dockerfile 创建了创建容器的图像:

FROM ubuntu:17.10
RUN apt-get update -y
RUN apt-get install locales
RUN locale-gen es_CO.UTF-8 
ENV LANG es_CO.UTF-8 
ENV LANGUAGE es_CO:en 
ENV LC_ALL es_CO.UTF-8

如果我运行这样的 python 脚本:

print("ñ")

ñ正常打印在控制台中,问题是当我尝试将字母ñ写为程序的输入时,当我在键盘上键入ñ时,控制台中显示的是¤。我已经尝试使用 setxkbmap 重新配置键盘,但我收到一条错误消息:'Cannot open display "default display"'。

我也试图找到一个已经设置了这个设置的 docker ubuntu 图像,但我没有找到任何一个。请帮忙。

【问题讨论】:

  • 如果您在控制台中执行echo -n ñ | od -h,输出是什么(即检查控制台代表哪些字节¤)?
  • 如果你先按 Ctrl-V 再按 ñ,你能输入 ñ 吗?
  • 我无法直接执行echo -n ñ | od -h,因为我无法输入ñ,但我使用此代码print('ñ') 制作了一个名为a.py 的python 脚本并执行python a.py | od -h 和输出是0000000 b1c3 000a 0000003。执行 echo -n ¤ | 的输出od -h 是:0000000 a4c2 0000002。 @weibeld
  • 键入 Ctrl-V 后跟 ñ 不起作用。 @weibeld
  • 我也刚刚意识到,如果我复制字符串 ñaäeöo 并将其粘贴到控制台中,它会显示 ¤a„e”o。 @weibeld

标签: python ubuntu docker utf-8


【解决方案1】:

您的终端似乎正确设置了 UTF-8,并且能够解码 UTF-8 代码。问题一定出在键盘和终端的通讯上。

使用以下内容创建文件~/.inputrc

set input-meta on
set output-meta on
set convert-meta off 
set enable-meta-key on

然后,注销,重新登录,启动一个新终端,看看它是否工作。

【讨论】:

  • 不行,我也觉得是键盘的问题,请问有什么办法可以改变键盘的分布吗? @weibeld
  • 那么,当您在终端中粘贴ñ,而不是键入它时,它会起作用吗?
  • 在终端中粘贴ñ而不是键入它也不起作用。例如,如果我在终端中粘贴“ñ”,终端显示的是“¤”,但如果我粘贴“¤”,终端显示的是“I¨”,这真的很奇怪。 @weibeld
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 2012-06-28
  • 1970-01-01
  • 2020-06-13
  • 2016-07-17
  • 2013-07-25
相关资源
最近更新 更多