2011年1月7日星期五

全半角转化

在windows中,中文和全角字符都占两个字节,并且使用了ASCII Chart 2 (codes 0x80–0xFF)。我们可以凭这一点来一个个检测用户输入的是否是中文和全角字符。实际上,全角字符的第一个字节总是被置为0xA3,而第二个字节则是相同半角字符码加上0x80(不包括空格)。如半角A为65,则全角A则是0x80(第一个字节)、193(第二个字节,0x80+65)。而对于中文来讲,它的第一个字节被置为大于0x80,(如'阿'为:176 162),我们可以在检测到中文时不进行转换。
全角空格比较特殊,两个字节相同,为0xA1 0xA1。