因為英文字符只占壹位,而中文字符占兩位,但在國際字符編碼標準unicode中,所有字符都占兩位,所以unicode中所有英文數字的第壹個字節的值絕對是0x00。只要讀取兩個字節,通過判斷第壹個字符是否為0x00就可以判斷漢字和英文字符。
但是請註意,unicode分為大端編碼和小端編碼,字符識別的順序正好相反。所以請註意,如果使用小端編碼,0x00會在前面,windows使用小段編碼。另外,在文本文件中,unicode有壹個dom頭,所以註意不要讀取文件頭。
2、根據每個字節轉換成的數字判斷。
眾所周知,西文字符主要是指ASCII碼,用壹個字節表示。而且這個字符轉換成數字後,數字大於0,而漢字是兩個字節,轉換成數字後第壹個字節應該小於0,所以可以根據轉換成數字後每個字節是否小於0來判斷是否是漢字。
擴展數據
在臺灣省、香港和澳門,使用繁體中文字符集。但1980公布的GB2312面向簡體中文字符集,不支持繁體中文。在這些使用繁體字字符集的地區,已經出現了很多不同廠商提出的字符集編碼,這些編碼之間互不兼容,造成了信息交換的困難。
1984年,為了統壹繁體字字符集的編碼,臺灣省內的宏碁、申通、佳佳、零壹、大眾五大廠商制定了繁體字的編碼方案。因為它的起源,Big5是用英文寫的,後來用英文翻譯成漢字,壹般就叫Big 5。
大五碼是繁體中文字符集,包括13053個繁體字,808個標點符號,希臘字母和特殊符號。大五碼的碼表是直接為存儲而設計的,每個字符用兩個字節的存儲來表示。
1字節範圍為81h-feh,避免了與ASCII碼的沖突。第二個字節範圍是40H-7EH和A1h-feh。因為Big5的字符編碼範圍與GB2312字符的存儲碼範圍沖突,所以同壹文本中不能同時支持兩種字符集的字符。