每个普通字符(或半角字符)只占用一字节的空间(一字节有8位,共256个编码空间),而汉语、日语、及朝鲜文等象形字语言的字库量远大于256个,所以改用两个字节来储存。同时,也是因为中日韩等象形文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。
为了排列整齐,英文和其它拉丁文的字符和标点也提供了全角格式。
汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。
通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。 全角占两个字节,半角占一个字节。半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字都还是要占两个字节。
在编程序的源代码中只能使用半角标点(不包括字符串内部的数据)
在不支持汉字等语言的计算机上只能使用半角标点(其实这种情况根本就不存在半角全角的概念)。
对于大多数字体来说,全角看起来比半角大,当然这不是本质区别。
[全角举例]AabB1234@#$%^&*;,。:
[半角举例]AabB1234@#$%^&*;,.:
2.实际中,半角英文字符、标点符号等,转换为全角的过程是:将在单字节高8位设置为 0xA3 (即163),将低字节设置为该单字节字符 + 0x80(即128)----将其变为一个首位为1的8位字节,将其变为俩个个字节(即全角)。
C语言实现 字符的全角、半角转换:
int fullToHalf(char *sFullStr, char *sHalfStr)
{
}
int halfToFull(char *sFullStr, char *sHalfStr)
{
}