首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >键盘输入编码

键盘输入编码
EN

Unix & Linux用户
提问于 2017-04-11 18:06:26
回答 1查看 3.7K关注 0票数 1

我正在努力学习Unicode和UTF-8的基础知识,到目前为止,它进展得非常顺利。我知道在打开文件时可以选择文件的编码。

当我在文本编辑器(盖迪特维姆)或命令提示符中使用键盘输入文本时,键盘向应用程序发送的编码是什么?在Windows机器上有什么不同吗?它可以配置吗?

EN

回答 1

Unix & Linux用户

发布于 2017-04-11 22:27:44

键盘不发送字符;它发送扫描代码。例如,当您在典型的美国键盘上按下标有"e“的键时,它会发送一个扫描代码,实质上是”主组中第二行字母数字键的左边第3键“。此扫描代码由内核(或操作系统的其他组件)转换为字符(或一般转换为键符号,例如“打印屏幕”),特别是在Linux中,可能由图形子系统转换。

通常,操作系统或图形子系统提供一个或多个实用程序来控制转换表;例如,在Windows和Linux中,您可以安装任意数量的键盘布局,并轻松地在其中切换。

应用程序得到什么取决于操作系统的约定。在Windows上,控制台应用程序得到根据命令chcp设置的当前控制台代码页编码的字符;图形应用程序获得一个键符号,该符号通常被转换为UTF-16编码字符。在Linux上,应用程序通常得到一个UTF-8编码字符.例如,如果我按键盘布局设置正确的ă键(拉丁文小写字母A带BREVE,U+0103),

  • 使用chcp 1250的Windows上的控制台应用程序将获得一个字节的'\xE3' (227个小数点)。
  • 使用chcp 852的Windows上的控制台应用程序将获得一个字节的'\xC7' (199小数点)。
  • Windows上的图形应用程序将得到一个合适的键符号,通常作为两个字节的'\x03' '\x01' (或短整数0x103)存储/处理。
  • Linux上的终端应用程序将获得两个字节的'\xC4' '\x83' ( UTF-8编码的)。
  • Linux上的图形应用程序将得到一个合适的密钥符号,通常以两个字节的'\xC4' '\x83' ( UTF-8编码中的)存储/处理。

(请注意,我所说的Windows NT指的是Windows NT及其后继者,如Windows、Windows、7或10。Windows 95等操作系统完全不同,谢天谢地不再使用了。)

在Vim中,您可以得到两层新的翻译:

  • 您可以使用set keymap安装键盘转换映射;请参见:help 'keymap':help mbyte-keymap。这有助于在无法在操作系统级别安装键盘布局的系统上输入所需语言的文本。
  • 可以使用:map命令定义映射。见:help :map
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/358371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档