全形和半形

(重定向自半形

全角半角是文字的两种显示形式,「全角」指文字字身长宽比为一比一的正方形,而「半角」为宽度为全角一半的文字。现在这两个词通常用来指代计算机中显示的文字。

fullwidth」的各地常用別名
中国大陸全角
臺灣全形
港澳全形
halfwidth」的各地常用別名
中国大陸半角
臺灣半形
港澳半形
Windows命令提示符中显示的全角和半角字符。

意义和用法编辑

在传统的字体排印学中,文字字身长宽比为1比1的正方形金属铅字原本称作「全身」,而宽度只有一半的称为「半身」。另外对于小于一个「全身」的各种铅空称为「分空」,通常称为「二分空」(注意不是「半身」)「三分空」「四分空」「六分空」等等。

「半角/全角」源于日文,其中「角」是「方块」的意思,「全角/半角」在日文里即是原本「正方形/半个正方形大小文字」的本意,与西文字体排印学中EmEn单位含义相同。

而中文里的「角」虽然有「角度」「角落」等含义,却没有「方块」的意思,中文在字体排印时不说「全角/半角」而说「全身/半身」。中文里说「半角/全角」是计算机文字编码技术引入时直接借用了日文的做法[1]

而目前对于计算机上的文字称作「全角字」「全形字」的指代非常混乱,可能是指 (1) 用两个字节存储的字符、(2) ASCII(所谓半角英文和数字)以外所有的字符、(3) 显示上字身宽度为一比一正方形的字形。

为了避免混乱,在使用「字宽」的本意时,可以使用从英文倒翻译回中文的「全宽/半宽」(fullwidth/halfwidth)。

历史编辑

而在早期的计算机中,英语拉丁字母语言使用的系统,每一个字母符号,都是使用一字节的空间(一字节由8位元組成,共256个编码空间)来储存;而汉语日语韩语文字,由于数量大大超过256个,故惯常使用两字节来储存一个字符。所以这原本是编码层面的「单字节」「双字节」的问题。

当时使用等宽字体(如DOS、部分文字编辑器等)时,字体也就顺应这种编码形式,将中日韩文字的宽度绘制成拉丁字母和数字的两倍,这样字符的编码存储和显示宽度可以一一对应起来,「单字节」文字显示成「半宽」,「双字节」文字显示成「全宽」。因此当时的用户就开始习惯称中、日、韩等文字为「全形字符」,而称拉丁字母或数字为「半形字符」。

但是,后来计算机的文字编码技术已经发生很大变化,存储一个字符可能用一个、两个、四个或者更多的字节。一个英文字符即使显示为半宽,依照不同的编码方式,并不一定是用一个字节存储;而日文的片假名也不一定是双字节,也可能用一个字节存储(即“半角片假名”)。因此,现在字符编码存储和字符显示宽度的已经没有一一对应关系。

但是由于字符编码和字形宽度曾经的对应关系,很多用户一直习惯性地使用「全角/半角」词汇。「全角字」「全形字」可能是指 (1) 用两个字节存储的字符、(2) ASCII(所谓半角英文和数字)以外所有的字符、(3) 显示上字身宽度为一比一正方形的字形。

而在说「半角字」「半形字」时可能指 (1) 用单字节存储的字符(可能包括片假名)、(2) ASCII 字符即拉丁字母、数字和常见符号(而事实上并不一定是用单字节存储,根据不同的字体会显示成全宽、或者是西文的「比例宽度」而并不是正好「半宽」)、(3) 显示上字身宽度为字体高度一半的字形)。

Unicode 里的 East_Asian_Width特性编辑

Unicode 标准的附件11 (UAX#11) 中以信息性附件 (informative) 的形式,定义了东亚文字的字宽 East_Asian_Width 特性[2]


缩写 名称 描述
W Wide(宽) 自然的宽字符,如平假名.
Na Narrow(窄) 自然的窄字符,如 ISO 基本拉丁字母.
F Fullwidth(全宽) 与自然的窄字符具有Unicode等價性的宽式变体, 比如全宽拉丁字母
H Halfwidth(半宽) 与自然的窄字符具有Unicode等價性的窄式变体, 如 半角假名。包括 U+20A9 (韩元符号) 这个例外
A Ambiguous(模糊) 在东亚雙位元組字元集和欧洲单字节字元集中都有的编码的字符,如 希腊字母,因此字宽行为会有所不同
N Neutral(中性) 没有出现在东亚雙位元組字元集编码中的字符,如天城文字母.


OpenType编辑

OpenType字体格式里定义了fwidhalthwidvhalGSUB特性,可以为同样一个编码(码位)的字符供替换成不同的字形(显示形式)。

参见编辑

外部链接编辑

  1. ^ Eric Liu. 全角半角碎碎念. 2018-02-27 [2020年4月26日]. (原始内容存档于2020-04-22). 
  2. ^ Asmus Freytag. Unicode Standard Annex #11: East Asian Width (5.0.0). 2006-09-15 [2008年1月1日]. (原始内容存档于2007-12-10).