全形和半形

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

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

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

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

而目前对于计算机上的文字称作「全-{}-角字」「全-{}-形字」和「半-{}-角字」「半-{}-形字」的指代非常混乱。

「全-{}-角字」「全-{}-形字」可能是指：
用两个字节存储的字符
ASCII（所谓半角拉丁字母、符号及阿拉伯数字）以外所有的字符
显示上字身宽度与字体高度相等（即字形外框为正方形）的字形

「半-{}-角字」「半-{}-形字」时可能指：
用单字节存储的字符（可能包括片假名）
ASCII 字符即拉丁字母、数字和常见符号
显示上字身宽度为字体高度一半的字形

为了避免混乱，在使用「字宽」的本意时，可以使用从英文倒翻译回中文的「全-{}-宽／半-{}-宽」（fullwidth / halfwidth）。

历史

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

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

但是，后来计算机的文字编码技术已经发生很大变化，存储一个字符可能用一个、两个、三个或者四个字节（如UTF-8）。一个英文字符即使显示为半宽，依照不同的编码方式，并不一定是用一个字节存储；而日文的片假名也不一定是双字节，也可能用一个字节存储（即“半角片假名”）。因此，现在字符编码存储和字符显示宽度的已经没有一一对应关系。但是由于字符编码和字形宽度曾经的对应关系，很多用户一直习惯性地使用「全角／半角」词汇。

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

半形字符与全形字符的比较

ASCII字符

日文字符

韩文字符

其他字符

OpenType
OpenType字体格式里定义了fwid、halt、hwid和vhal等GSUB特性，可以为同样一个编码（码位）的字符供替换成不同的字形（显示形式）。

参见
CJK
半形及全形字符 (Unicode區段)
半角假名
等宽字体
Em尺寸——全角的实现形式

註釋

参考资料

外部链接
East Asian Width Unicode Standard Annex #11

Unicode區段
字符集