热门问题
时间线
聊天
视角
全角和半角
来自维基百科,自由的百科全书
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