热门问题
时间线
聊天
视角
全形和半形
来自维基百科,自由的百科全书
Remove ads
全角和半角是文字的两种显示形式,「全角」指文字字身长宽比为一比一的正方形,而「半角」为宽度为全角一半的文字。现在这两个词通常用来指代计算机中显示的文字。

意义和用法
在传统的字体排印学中,文字字身长宽比为1比1的正方形金属铅字原本称作「全身」,而宽度只有一半的称为「半身」。另外对于小于一个「全身」的各种铅空称为「分空」,通常称为「二分空」(注意不是「半身」)「三分空」「四分空」「六分空」等等。
「半角/全角」源于日文,其中「角」是「方块」的意思,「全角/半角」在日文里即是原本「正方形/半个正方形大小文字」的本意,与西文字体排印学中Em和En单位含义相同。
而中文里的「角」虽然有「角度」「角落」等含义,却没有「方块」的意思,中文在字体排印时不说「全角/半角」而说「全身/半身」[來源請求]。中文里说「半角/全角」是计算机文字编码技术引入时直接借用了日文的做法[1]。
而目前对于计算机上的文字称作「全角字」「全形字」和「半角字」「半形字」的指代非常混乱。
「全角字」「全形字」可能是指:
- 用两个字节存储的字符
- ASCII(所谓半角拉丁字母、符号及阿拉伯数字)以外所有的字符
- 显示上字身宽度与字体高度相等(即字形外框为正方形)的字形
「半角字」「半形字」时可能指:
- 用单字节存储的字符(可能包括片假名)
- ASCII 字符即拉丁字母、数字和常见符号[註 1]
- 显示上字身宽度为字体高度一半的字形
为了避免混乱,在使用「字宽」的本意时,可以使用从英文倒翻译回中文的「全宽/半宽」(fullwidth / halfwidth)。
Remove ads
历史
在早期的计算机中,英语或拉丁字母语言使用的系统,每一个字母或符号,都是使用一字节的空间(一字节由8位元組成,共256个编码空间)来储存;而汉语、日语及韩语文字,由于数量大大超过256个,故惯常使用两字节来储存一个字符。所以这原本是编码层面的「单字节」「双字节」的问题。
当时使用等宽字体(如DOS、部分文字编辑器等)时,字体也就顺应这种编码形式,将中日韩文字的宽度绘制成拉丁字母和数字的两倍,这样字符的编码存储和显示宽度可以一一对应起来,「单字节」文字显示成「半宽」,「双字节」文字显示成「全宽」。因此当时的用户就开始习惯称中、日、韩等文字为「全形字符」,而称拉丁字母或数字为「半形字符」。
但是,后来计算机的文字编码技术已经发生很大变化,存储一个字符可能用一个、两个、三个或者四个字节(如UTF-8)。一个英文字符即使显示为半宽,依照不同的编码方式,并不一定是用一个字节存储;而日文的片假名也不一定是双字节,也可能用一个字节存储(即“半角片假名”)。因此,现在字符编码存储和字符显示宽度的已经没有一一对应关系。但是由于字符编码和字形宽度曾经的对应关系,很多用户一直习惯性地使用「全角/半角」词汇。
Remove ads
Unicode 裏的 East_Asian_Width 特性
Unicode 标准的附件11 (UAX#11) 中以信息性附件 (informative) 的形式,定义了东亚文字的字宽 East_Asian_Width 特性[2]。
半形字符与全形字符的比较
Remove ads
Remove ads
Remove ads
Remove ads
OpenType
OpenType字体格式里定义了fwid
、halt
、hwid
和vhal
等GSUB
特性,可以为同样一个编码(码位)的字符供替换成不同的字形(显示形式)。
参见
- CJK
- 半形及全形字符 (Unicode區段)
- 半角假名
- 等宽字体
- Em尺寸——全角的实现形式
註釋
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads