首先,這個問題不嚴謹了,如果給定乙個任意字串,不可能斷定它是否包含漢字,只有知道其編碼方式才可能判斷,比如已知為utf-16,可根據unicode標準漢字**點範圍判斷,如果是ansi本地化編碼如gb2312(1980):雙位元組最高位為1, 範圍:1:[0xa1-0xfe],2:[0xa1-0xfe],7445個字元,漢字範圍:1:[0xb0-0xf7],2:[0xa1-0xfe]。
其次,gb2312,gbk,gb18030這些漢字編碼方式都是位元組流,像utf-8一樣不存在位元組序的問題,和x86等平台架構無關,如果是utf-16和utf-32才要考慮這個問題。
對於gbk和gb2312的編碼方式漢字編碼用兩個位元組表示,特點是第乙個位元組的最高位為1
x86平台採用little-endian 故高位元組在高位。
如下**將輸入的中文與英文混合字串中的英文中的大寫字母改為小寫字母。
簡單的判定方法,不夠準確,只適用於gb系列和big5系列編碼
更多細節待續
判斷漢字 編碼方式
由於常常要和漢字處理打交道,因此,我常常受到漢字編碼問題的困擾。在不斷的打擊與堅持中,也積累了一點漢字編碼方面的經驗,想和大家一起分享。一 漢字編碼的種類 漢字編碼中現在主要用到的有三類,包括gbk,gb2312和big5。1 gb2312又稱國標碼,由國家標準總局發布,1981年5月1日實施,通行...
漢字編碼及C 裡的判斷
dos下的點陣漢字 你是否碰到過用啟動盤啟動系統後用dir命令得到一串串莫名其妙的字元?有經驗的朋友會告訴你 那是漢字。漢字?你不禁會問 怎麼乙個我乙個也不認 識。但那確確實實是漢字,如果你啟動ucdos或其他的漢字系統後,就會看到那是乙個個熟悉的漢字。同樣是漢字,為什麼前後會看到不同的結果?呵呵,...
判斷字串編碼
size large 猜測法 猜測一種字串編碼,然後使用該編碼對字串進行編碼,還原。如果猜測錯誤,字串會被破壞,還原城亂碼。size 判斷字串編碼 param str return public static string getencoding string str catch exception...