一个中文是两个字符组成,
假设:AB表示一个汉字的两个字符,CD表示另外一个汉字的两个字符,
那么字符串 ABCD就表示两个汉字
可是如果是 BCD那么在显示该字符串时B字符就显示为一个乱码。
如何才能检测出BC组合是一个非法字符呢?
也就是说,我怎么能检测出A是汉字的第一个字符,而B是汉字的第二个字符。
并且A,B,C,D表示汉字的字符又如何与标准的ASCII码区分呢?
假设:AB表示一个汉字的两个字符,CD表示另外一个汉字的两个字符,
那么字符串 ABCD就表示两个汉字
可是如果是 BCD那么在显示该字符串时B字符就显示为一个乱码。
如何才能检测出BC组合是一个非法字符呢?
也就是说,我怎么能检测出A是汉字的第一个字符,而B是汉字的第二个字符。
并且A,B,C,D表示汉字的字符又如何与标准的ASCII码区分呢?
GBK的汉字内码的汉字区为B0A1-F376
unicode汉字内码的汉字区为4E00-9FA5
如果abcd为两个汉字的4个内码字符,理论上bc也可能组成一个汉字而非乱码,所以很难测出BC组合是一个非法字符
判是否半个汉字是可以的,但只能从边界上判(如从头或从尾开始,最简的方法用unicode)
要判汉字的字符又如何与标准的ASCII码区分,一般判最高位
http://community.csdn.net/Expert/ForumList_Search.asp?bigclassid=53&smallclassid=5301&whichpage=1&searchKeys=%BA%BA%D7%D6&author=&tabletype=now&searchtype=1
mbLeadByte: 汉字的第一个字节
mbTrailByte: 汉字的第二个字节
mbSingleByte: 单个的字符,不是中文字符。