据我所知,要在 Word 中显示 Unicode 代码点,应先按 Alt 键,然后按字符 + 和 Unicode 代码点,这两个字符均在数字键盘中输入。这就是我对下面两个字符所做的操作。效果很好。
٪ U066A 阿拉伯百分号
ٮ U066E 阿拉伯字母无点 BEH
然而,当我尝试展示下图所示的字符Ň时,
不使用对话框,而是通过键入 Alt+0147,使用上面第一段中提到的技术,我得到的是字符“,它的 Unicode 代码点为 U+201C。要获得字符 Ň,我必须键入 Alt+,并在数字键盘中键入 + 字符,并在普通键盘中键入代码点 0147。瞧:
Ň
此外,我知道字符“出现在代码页 1252(这是我的 Windows 代码页)中,其十进制值为 147。
但我仍然不明白,这一切背后的逻辑是什么?更具体地说,为什么数字键盘上的快捷键 Alt+0147 不起作用,正如预期的那样?
编辑
请打开这个文件在我的 OneDrive 中验证Word 365(免费版)当我输入快捷键 Alt+0147 时,数字键盘中输入的字符“+0147”正确显示字符 Ň。还请注意,我在本帖中使用了相同的技术来显示字符 Ň。因此,我必须得出结论,我的 Word 2010 有一个错误,这回答了我的问题。
另请参阅第 (2) 项这个答案。
答案1
对于 Office 如何输入此 Unicode 字符的答案很简单:
0147
在文本中 输入内容,然后按Alt+ X。
输入的文本将被替换为 Ň。
参考 : 插入 ASCII 或 Unicode 拉丁语系符号和字符。
您描述的机制Alt对于 Windows 来说是通用的,而上述机制特定于 Office。
答案2
因为向后兼容。
“Alt 代码”比 Windows 更古老。它们始于IBM 个人计算机在 1980 年(或者可能更晚,我不知道原始 PC 中是否存在该功能)。那台计算机的字符编码有 256 个代码点(单字节编码)。大多数程序使用文本模式显示,能够显示由显卡提供的单一、固定宽度、256 个字符的字体,称为代码页。PC 上的默认代码页是CP437,其中包括ASCII以及大多数西欧语言的变音符号和标点符号、一些数学和技术符号,以及线描人物. 计算机附带的固件(BIOS)将 Alt+数字键转换为相应的字符,以允许人们输入键盘上不存在的字符。例如,Alt+(NumPad1 NumPad6 NumPad5)插入字符 165,在CP437是Ñ
。
后来 Windows 出现了。在图形环境中,线条绘制字符没有用处,而且你可以在同一文档中切换多种字体。因此 Windows 有不同的字符集(通常称为“ANSI 代码页”,尽管它们实际上并不遵循 ANSI 标准),这些字符集省略了这些字符,以便为文本中常用的更多字符腾出空间。这些字符集最初仍然是单字节字符集(亚洲版 Windows 除外)。ISO 8859(例如 ISO 8859-1 又称西欧语言的 Latin-1),后来扩展为“Windows 代码页“ 例如Windows-1252。Windows 扩展了 Alt 代码以支持 Windows 代码页,同时保持与已学习“DOS”(实际上是 BIOS)代码点的用户的习惯兼容。例如,假设默认设置是 CP437 作为 DOS 代码页,8859-1 或Windows-1252作为 Windows 代码页,Alt+( NumPad1 NumPad6 NumPad5) 仍会插入来自 CP437 的 ñ,但如果您在数字前键入 0,则会从 Windows 代码页中获取数字:Alt+( NumPad0 NumPad1 NumPad6 NumPad5) 表示¥
,Alt+( NumPad0 NumPad2 NumPad0 NumPad9) 表示Ñ
。
后来,Unicode 出现了,它有数千个代码点,而不是 256 个。但 Windows 仍然不想破坏用户的习惯,所以他们保留了Alt+numpad 数字,如果数字序列是 1 到 255 之间的数字且没有前导 0,则使用 BIOS 代码点,如果数字序列是 32 到 255 之间的数字且有前导 0,则使用 Windows 代码点(如果我没记错的话,0-31 范围内的控制字符不能以这种方式输入)。这解释了为什么Alt+( NumPad0 NumPad1 NumPad4 NumPad7) 插入“
: 它的代码点是 147,来自Windows-1252。Windows-1252 和 Unicode 都扩展了 ISO 8859-1,它只为 32–126(ASCII)和 160–255 范围内的字符定义字形。这解释了为什么这些范围内以 0 开头的 alt 代码与 Unicode 匹配,但与 127-159 不匹配,其中 ISO 8859 和 Unicode 有控制字符,但 Windows 代码页添加了可见字形。
在为 Unicode 字符设计 alt 代码时,Windows 的设计者必须选择一种不与两种既定机制冲突的机制。此外,Unicode 图表使用十六进制代码,因此他们不能仅依赖数字键盘。Alt+( A A A A) 表示快捷键Alt+A四次,因此必须有另一种插入 的方式ꪪ
。他们选择了Alt+(NumPad+十六进制数字),其中十六进制数字可以在主键盘区域输入。
(注意:我不确定这个答案中的所有内容是否适用于所有现代版本的 Windows,或者是否适用某些变体或配置。我的 Windows 知识已经非常过时了。)