參考資料:字符編碼和中文亂碼小敘css
當前windows xp 的默認字符集爲gbk。
html
ASCII是基於拉丁字母的一套電腦編碼系統。它主要用於顯示現代英語和其餘西歐語言。它是現今最通用的單字節編碼系統,並等同於國際標準ISO/IEC 646。web
在計算機中,全部的數據在存儲和運算時都要使用二進制數表示(由於計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些經常使用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪一個符號,固然每一個人均可以約定本身的一套(這就叫編碼),而你們若是要想互相通訊而不形成混亂,那麼你們就必須使用相同的編碼規則,因而美國有關的標準化組織就出臺了ASCII編碼,統一規定了上述經常使用符號用哪些二進制數來表示。windows
約定計算機具體用哪些二進制數字表示哪一個符號,這樣的一套規則就稱爲編碼。學習
你們在互相通訊時使用的編碼規則不同,就會致使亂碼。爲了避免形成混亂,美國有關標準組織出臺了ASCII編碼,統一規定了經常使用符號用哪些二進制數表示。
編碼
最初學習計算機,首先接觸的是ASCII編碼。0是48,a是97.spa
ASCII是標準的單字節字符編碼方案,用於基於文本的數據。code
ASCII 碼使用指定的7 位或8 位二進制數組合來表示128 或256 種可能的字符。標準ASCII 碼也叫基礎ASCII碼,使用7 位二進制數來表示全部的大寫和小寫字母,數字0 到九、標點符號, 以及在美式英語中使用的特殊控制字符。orm
更多相關介紹參見百度百科:ASCIIhtm
計算機中位和字節的關係:
計算機中以8bit(位)爲一個byte(字節),因而一個byte能表示256個數。
ASCII用一個字節,而且第一位是0,也就是隻用了7bit,因而ASCII只有128種表示,這對於英文系統足夠了。
使用7 位二進制數來表示全部的大寫和小寫字母,數字0 到九、標點符號, 以及在美式英語中使用的特殊控制字符。
擴展ASCII 字符是從128 到255(0x80-0xff)的字符。
擴展ASCII再也不是國際標準。
ascii是用一個字節,而且第一位是0,也就是說只用了7個bit,因而ASCII只有128種表示,這對於英文系統是最夠的了。可是歐洲不少字母和英文字母很不相同,因而爲了擴展,第一位也歸入使用,這樣就是ISO8859-1編碼,又叫作latin-1,不少時候你不指定編碼的時候,默認編碼就是ISO8859-1,這是一個要注意的地方。
ASCII用一個字節,而且第一位是0,也就是說只用
ASCII用一個字節,而且第一位是0,也就是說只用了7bit,因而ASCII只有128種表示,這對於英文系統是足夠了。
可是歐洲不少字母和英文字母很不一樣,因而爲了擴展,第一位也歸入使用,這就是ISO-8859-1編碼,又叫作latin-1.S
不少時候不指定編碼的時候,默認編碼是ISO-8859-1.
0-127 是7位ASCII 碼的範圍,是國際標準。
至於漢字,不一樣的字符集用的ascii 碼的範圍也不同。
經常使用的漢字字符集有GB2312-80,GBK。
GB_2312 字符集是目前最經常使用的漢字編碼標準,windows 95/98/2000 中使用的 GBK字符集 就包含了GB2312,或者說和GB2312 兼容,GB_2312 字符集包含了 6763個的 簡體漢字,和682 個標準中文符號。
在這個標準中,每一個漢字用2個字節來表示,每一個字節的ascii碼爲 161-254 (16 進制A1 - FE),第一個字節 對應於 區碼的1-94 區,第二個字節 對應於位碼的1-94 位。
161-254 其實很好記憶,你們知道英文字符中,可打印的字符範圍爲33-126。將 這對 數加上128(或者說最高位置1),就獲得漢字使用的字符的範圍。
//GB18030的規範是漢字第一個字節在0x81-0xFE之間,第二個字節位於區間0x40-0x7E以及0x80-0xFE。每一個字節轉化爲整數大於128。
對於中文編碼而言,你們比較熟悉的是GB2312編碼,這是大陸地區推行的簡體字的編碼標準,而相應的臺灣的繁體字用的是BIG5的繁體字編碼。
因爲GB2312只有簡體字,後來又進行了擴充,便有了GBK。
GBK是GB2312的超集,也就是說GB2312編碼的字符,均可以用GBK方式解讀。