一、什么是全角和半角?
之所以有这样的区别,简单说就是中文系统用双字节显示汉字造成的与世界标准(由美国制订的)不一的问题。
说白了,对我们来说就是只针对中文的字库才有全角半角的说法。
(1)全角
汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。全角字符在编码上占两个字节的宽度。国标中为原始的英文字母、数字和标点也定义了全角状态,有一部分中英文标点的长相是不一样的(如句号)。
(2)半角
是指英文件ASCII码中的各种符号,包括了英文字母、数字键、和一些符号,半角的内码都是一个字节。在编写程序代码和系统命令时都使用半角字符,初学C或C++的人可能都会有把一个逗号或分号写成全角的从而出现编译出错的经历。
二、中文输入法中的全角、半角和中英文标点的组合
由于国标中的字符都是全角的,因此,输入法中输出的汉字和中文标点永远是全角(空格不算);输出的英文字母、英文标点和数字既可能是全角的也可能是半角的。
在输入法中,可以这样理解,输出的全角字母和符号会占用固定的宽度(一般是一个或半个汉字宽),而输出的半角字母符号的宽度不是统一的,为了让输出的字母和符号紧挨着,其宽度会因为字母本身的形状会而有所不同。
我以搜狗五笔为例学习了一下,其他输入法应该是一样的。
1.以搜狗五笔为例,在中文输入状态下,一共有四种组合:
(1)中文标点+全角:这时输入的标点是这样的,。:【1】,这时标点和数字都是全角的;
(2)中文标点+半角:这时输入的标点是这样的,。:【1】,可见选中半角对中文标点来说不起作用,不过对数字会起作用;
(3)英文标点+全角:这时输入的标点是这样的,.:[1],数字是全角的;
(4)英文标点+半角:这时输入的标点是这样的,.:[1],符号和数字也变成的半角的。
2.在英文输入状态下,只有全角和半角可选,中英文标点不可选:
(1)全角英文:这时的输入是这样的abc,.:;ABC,.:;(宋体)
(2)半角英文:这时的输入是这样的abc,.:;ABC,.:;(Times New Roman)