關於ASCII和GB23十二、GBK、GB18030、UNICODE,這篇文章的講解頗有趣,讀者比較容易理解。ASCII-->GB2312-->GBK-->GB18030-->UNICODE的發展歷程
這裏,我就大概總結下:程序員
ASCII編碼函數
ASCII編碼起源於美國,用一個字節來表示一個字符,所以能夠表示256個字符。起初,美國人只使用了1-127個字符,但很快,其餘國家開始用盡了剩下的字符(128-255,稱爲擴展字符集)。編碼
GB2312編碼.net
後來,中國也引進了計算機,發現經常使用的漢字有6000多個,可是在ANCII編碼方案中的全部字符已經被使用殆盡。此時,GB2312編碼應運而生。
GB2312編碼方案規定:2個字符表示一個漢字。一個小於127的字符的意義與原來相同,但兩個大於127的字符連在一塊兒時,就表示一個漢字。這樣就能夠組合出大約7000多個簡體漢字。code
GBK編碼blog
後來,中國程序員發現,使用GB2312編碼方案仍是沒法表示某些字,因而乾脆再也不要求低字節必定是127號以後的內碼,只要第一個字節是大於127就固定表示這是一個漢字的開始,無論後面跟的是否是擴展字符集裏的內容。這既是GBK編碼,GBK 包括了 GB2312 的全部內容,同時又增長了近20000個新的漢字(包括繁體字)和符號。
這種方案,1個漢字==2個字符開發
UNICODE編碼get
在UNICODE編碼出現以前,各個國家都有本身的一套編碼方案,所以搞得誰也不認識誰,誰也不支持別人的編碼。
此時,爲了國際統一,ISO(國際標誰化組織),從新搞一個包括了地球上全部文化、全部字母和符號的編碼!這就是Unicode編碼。Unicode是用兩個字節來表示爲一個字符,總共能夠組合出65535不一樣的字符效率
ASCII時代:一個漢字==2個字符
UNICODE時代:一個漢字==1個字符擴展
爲何使用Unicode
當開發應用程序時,固然應該考慮利用Unicode的優勢。即便如今你不打算對應用程序進 行本地化,開發時將Unicode放在心上,確定能夠簡化未來的代碼轉換工做。此外,Unicode還 具有下列功能: • 能夠很容易地在不一樣語言之間進行數據交換。 • 使你可以分配支持全部語言的單個二進制. exe文件或DLL文件。 • 提升應用程序的運行效率(本章後面還要詳細介紹)。 Win2000之後的系統從底層支持Unicode字符。就如今來看,儘可能要要用Unicode字符,這樣能夠提升程序效率,避免系統在內部進行轉換。Win2000之後的系統中,全部API函數只接受Unicode字符,若是傳入ASCII字符,系統會自動把它轉換成Unicode字符,再調用函數。