中文内码的区码和位码有交集,单凭一个字节无法准确判断是第一个字节还是第二个字节。
仅有的规律是区码(第一个字节)大等于0xb0,位码(第二个字节)大等于0xa1,因此如果某个字节大等于0xa1仅小于0xb0,则可能是汉字的第二个字节,不可能是汉字的第一个字节。

解决方案 »

  1.   

    //Gb2312 高字節範圍 0xa1 <= Gb2312.High <= 0xf7
    //Gb2312 低字節範圍 0xa1 <= Gb2312.Low  <= 0xfe
    //Big5 高字節範圍 0xa1 <= Big5.High <= 0xf9
    //Big5 低字節範圍 0x40 <= Big5.Low  <= 0xfe
      

  2.   

    If CH<=127 Then
      ASCII
    ELSE
      CHINESE
      

  3.   

    目前的中文内码应属DBCS,可以使用IsDBCSLeadByte(BYTE TestChar)函数