一个中文是两个字符组成,
假设:AB表示一个汉字的两个字符,CD表示另外一个汉字的两个字符,
那么字符串 ABCD就表示两个汉字
可是如果是 BCD那么在显示该字符串时B字符就显示为一个乱码。
如何才能检测出BC组合是一个非法字符呢?
也就是说,我怎么能检测出A是汉字的第一个字符,而B是汉字的第二个字符。
并且A,B,C,D表示汉字的字符又如何与标准的ASCII码区分呢?

解决方案 »

  1.   

    首先,我们目前常用的汉字编码有两种,GBK和unicode
    GBK的汉字内码的汉字区为B0A1-F376
    unicode汉字内码的汉字区为4E00-9FA5
    如果abcd为两个汉字的4个内码字符,理论上bc也可能组成一个汉字而非乱码,所以很难测出BC组合是一个非法字符
    判是否半个汉字是可以的,但只能从边界上判(如从头或从尾开始,最简的方法用unicode)
    要判汉字的字符又如何与标准的ASCII码区分,一般判最高位
      

  2.   

    搜索 汉字 
    http://community.csdn.net/Expert/ForumList_Search.asp?bigclassid=53&smallclassid=5301&whichpage=1&searchKeys=%BA%BA%D7%D6&author=&tabletype=now&searchtype=1
      

  3.   

    其实,用ByteType对取出来的字符进行判断,我们可以得知这个字符是一个单字符还是汉字的一部分!
        mbLeadByte: 汉字的第一个字节
        mbTrailByte: 汉字的第二个字节
        mbSingleByte: 单个的字符,不是中文字符。
      

  4.   

    谢谢,有了ByteType函数,我想我的问题应该可以解决了。谢谢