Unicode输入法

✍ dations ◷ 2024-12-24 22:16:04 #Unicode,输入法

Unicode输入法(英语:Unicode input)是指用户于电脑插入一特定的通用字符集字符(英语:Universal Character Set characters);它是一个在输入实体键盘不直接支持的字符的常用方法。Unicode字符可透过在显示中选择或于实体键盘上输入特定按键组合生成,而这些在一个网页或文件中生成的字符(不论透过任何一种方法)皆可复制至另一处。相对于ASCII的96个基本字符集(Unicode亦有收录),Unicode收录数以十万计、涵盖几近全球的书写语言及不同标示与符号的字模(字符)。

一个Unicode输入系统必须提供大量字符(理论上为所有有效的Unicode代码点),与定义按键与其按键组合只适合特定地区且有限字符的键盘布局有所不同。

Unicode字符由代码点分辨,通常以“U+”附加4-6位十六进制数表示,如U+00AE及U+1D310。于基本多文种平面(BMP)中的字符,包括不少汉字、日文文字及符号等现代文字,有4位的代码;而甚具历史的文字,以及不少现代符号与象形文字(诸如颜文字、表情符号、游戏牌及不少中日韩统一表意文字),则有5比特代码。

一个程序只有于能够搜索到一个包含该字符字模的字体下显示特定字符。甚少字体能够完整覆盖Unicode所收录的字符;大多数字体则只包含可支持部分书写系统下的字模。然而,大多数现代浏览器与其他文字处理程序可显示多语言内容,皆因这些程序透过使用字体替换(英语:Font substitution)方式,自动利用其他字体显示现时所使用的字体未有收录的字符。使用哪一种字体作替代字体及视乎所使用的软件与操作系统;部分软件会于所有已安装字体搜索适合的字模,但其他则只会搜索特定字体。

若果一个程序无法搜索支持该字符的字体,通常该字符会以一个问号、替代字符(U+FFFD � )或该字体的“.notdef.”字符(有时候或会因其字符外形与豆腐相似而被称为“tofu”,惟部分字体于方形内打叉字)。现代应用上则使用最后者以表示不支持的字符,而替代字符则只用于编码错误。

不少系统提供可视化方法以选择Unicode字符。ISO/IEC 14755(英语:ISO/IEC 14755)标准将之定义为一种“屏幕选择输入方法”(screen-selection entry method)。

Microsoft Windows自Windows XP起于消费者层面提供一个Unicode版本的字符映射表程序,惟只包含于基本多文种平面(BMP)中的字符。用户可透过Unicode字符名称搜索字符,而列表亦可只限于一特定的代码块。

市面上亦提供同类的第三方高级工具(当中知名的免费软件计有BabelMap,该程序支持所有Unicode字符)。

在大多数Linux桌面环境中,亦有提供如gucharmap(英语:gucharmap)(GNOME)或kcharselect(英语:kcharselect)(KDE)的同等工具。

Microsoft Windows支持使用Alt码,透过于数字键盘输入的十进制数字转化为部分Unicode代码点。例如,除号的代码点U+00F7及F7等同于十进制下的247,故Alt+0247可产生“÷”(起首的0为必须;Alt+247则基于CP437产生“≈”)。在大部分应用程序中,这方法只适用于少于256的数值。

文本编辑器Vim支持透过两字符的简写(mnemonics,在Vim开发人员中误称其为“双字符组”)定义字符。已安装的字符集可透过定义任意代码点、利用十进制帮助的自定义简写扩展。例如十进制中的9881与十六进制的2699相等,故dig Gr 9881与“Gr”关系,得出U+2699 ⚙ GEAR。

ISO/IEC 14755(英语:ISO/IEC 14755)第5.1条描述一种“简单方法”(Basic method),当中。大多数现代电脑系统有一些可模拟该描述的方法,惟部分只支持最多四位数值(意味只能支持基本多文种平面)。

用户可透过于注册表登录器中,搜索HKEY_CURRENT_USER\Control Panel\Input Method目录并添加名为EnableHexNumpad的字符串(REG_SZ)值,将数值设为1即可激活十六进制Unicode输入法。该操作需用户再次登录系统后方能生效(在Windows Vista或以前版本中,用户需将电脑重启,方能激活输入法)。

功能激活后,用户可透过先按下Alt,并于数字键盘键入+,再输入十六进制代码(透过数字键盘输入0-9及/或字母键输入A-F),最后释放Alt键即可输入Unicode代码。以此方法输入五位长的十六进制代码(如U+1F937)可能失效。

若果用户不愿透过修改注册表方式或在没有数字键盘的设备(尤其为笔记簿型电脑)实现上述输入方法,可下载程序“UnicodeInput”。若用户在输入文字时触发该程序,会出现类似右图的接口。用户输入十六进制代码后按↵ Enter,即可产生所需字符,窗口亦随之消失。

AutoHotkey代码支持以输入方式替代Unicode字符。例如,输入Send {U+2014}会于当前窗口文字栏插入一个长连接号(em dash)。

在部分程序(Word、写字板及LibreOffice程序)中支持一种较简单的方法:用户先输入字符的十六进制代码(介乎2-6位十六进制数),再按Alt+X便可将数值替换成Unicode字符。例如,输入fl再按下上述按键组合即可产生字符“ñ”。除非该字符在十六进制表示中长达六位数,否则该代码不得以任何数值或字符a-f开首,皆因这些字符会被视为需转换文字代码的一部分。例如输入afl再按下Alt+X会生成“૱”(U+0AF1),但输入a0000f1则会生成“añ”。

Unicode的十六进制输入必须激活。在Mac OS 8.5以后版本中,用户可以选择“Unicode Hex Input”键盘布局;于OS X Yosemite (10.10)版本中,则可透过“键盘”→“输入来源”添加。

透过按下⌥ Option,用户可输入四位十六进制数的Unicode代码点即可显示对应的字符;此时便可释放⌥ Option键。在基本多文种平面(BMP,Basic Multilingual Plane)以外的字符即使超出Unicode十六进制的四比特输入机制,但用户可透过代理对(surrogate pairs)方式实现输入:在按下⌥ Option键的同时先后键入首组代理对、+键、第二组代理对,最后才释放⌥ Option键。

在不少应用程序中,可透过一个或多个方法以直接输入Unicode字符:

上述方法受GTK及Qt(甚或其他)应用支持;而在Chrome OS中,则为一个操作系统功能。

在HTML及XML中,用作生成字符的字符代码以&及井号为前缀(&#),后加一个分号(;)组成。当中代码点可以十进制或十六进制显示,而后者则再加上“x”字(可忽略开首的0字)。部分字符可透过实体名称显示。

例如:在HTML及XML中,著作权符号©(U+00A9)可编码作:

上述受不少接受HTML标记语言的软件支持,包括Thunderbird及维基百科编辑。

相关

  • 雷,古代亦写作“靁”,在气象学中指因为闪电通过而同时释放高能量,将周围的空气急剧膨胀产生冲击而形成的声波,一般会表现为伴随闪电现象发生的隆隆声响。因为声音和光在大气中的
  • 威廉·卢云·哈密顿威廉·卢云·哈密顿爵士(英语:Sir William Rowan Hamilton,1805年8月4日-1865年9月2日),爱尔兰数学家、物理学家及天文学家。哈密顿最大的成就或许在于重新表述了牛顿力学,创立被称
  • 鹫龙鹫龙属(属名:Buitreraptor)又名阿根廷鹫龙,是驰龙科恐龙的一属,生存于白垩纪晚期的南美洲。在2004年,阿根廷塞巴斯蒂安·阿派斯特圭、芝加哥菲尔德博物馆的彼得·马克维奇等人在阿
  • 吠檀多吠檀多(梵语:वेदान्त,转写:Védānta,发音.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code20
  • 峰敦子峰敦子(日语:峰 あつ子,1951年5月2日-),日本资深女性配音员。Production Baobab所属。出身于东京都。身高158cm。O型血东京都立神代高等学校(日语:東京都立神代高等学校)毕业。ススキ
  • 周邦新周邦新(1935年12月-)是一位中国材料学家。江苏吴县人。1956年毕业于北京钢铁学院金相及热处理专业,1970年后在中国核动力研究设计院从事核燃料及材料领域的研究,1995年当选中国工
  • 伊予亲王伊予亲王(いよしんのう、783年?-807年12月14日)是平安时代初期的皇族。桓武天皇的第三皇子(有异说)。官位三品・中务卿、赠一品。延历11年(792年),加冠,任三品式部卿。大同元年(806年),
  • 唐虞唐虞或尧舜是中国上古时期中原部落联盟首领唐尧和虞舜的合称。其对于黄河流域的开发出现中国历史上第一个治世,后人称为唐虞之治或者唐虞时代。作为上古中国黄河流域地区的一
  • 闻立鹤闻立鹤(1927年9月21日-1981年3月13日),曾用名高克,男,湖北浠水人,中国政治宣传工作者。闻一多的长子。1927年9月21日生于湖北省浠水县巴河。是闻一多的长子。1945年9月,入国立西南联
  • 卡伦文德王朝卡伦文德王朝(Qarinvand)(也可拼为 Karenvand 和 Qarenvand,或简称为 Karenids)是伊朗的王朝,统治塔巴里斯坦(或称马赞德兰)的部分地区,统治期间从公元550年代到11世纪,塔巴里斯坦位于