1,什麼是字符編碼?
字元(Character)是文字與符號的總稱,包括文字、圖形符號、數學符號等。一組抽象字元的集合就是字元集(Charset)。字符集的出現是為了資訊進行傳播儲存提供方便。目前常用到字元集有:ASCII,ISO 8859-1,Unicode,GB2312
2,各種編碼集有哪些特色?
ASCII:
ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基於拉丁字母的一套電腦編碼系統。
包含內容:控製字元(回車,退格,換行鍵),可顯示式字元(英文大小寫,阿拉伯數字和西文符號)。
技術特徵:7位元(bits)表示一個字符,共128字符
缺點:只能表示英語,想西歐,東亞和拉美地區的語言符號無法表示。
ISO 8859-1:
ISO 8859-1,正式編號為ISO/IEC 8859-1:1998,又稱Latin-1或“西歐語言”,是國際標準化組織內ISO/IEC 8859的第一個8位元字元集。
它以ASCII為基礎,在空置的0xA0-0xFF的範圍內,加入96個字母及符號,藉以供使用附加符號的拉丁字母語言使用。曾推出ISO 8859-1:1987 版。
包含內容:ASCII編碼包含的,部分西歐所使用的語言。
技術特徵:8位元表示一個字元。
Unicode:
Unicode字元集編碼是Universal Multiple-Octet Coded Character Set 通用多八位元編碼字元集的簡稱,是由一個名為Unicode 學術學會(Unicode Consortium)的機構所訂定的字元編碼系統,支援現今世界各種不同語言的書面文字的交換、處理及顯示。該編碼於1990年開始研發,1994年正式公佈,最新版本是2005年3月31日的Unicode 4.1.0。
技術特徵:16位元編碼,每個字元佔用2個位元組。一個字元的Unicode編碼是確定的。但在實際傳輸過程中,由於不同系統平台的設計不一定一致,以及出於節省空間的目的,對Unicode編碼的實作方式有所不同。 Unicode的實作方式稱為Unicode轉換格式(Unicode Transformation Format,簡稱UTF)。如果一個7位元的ASCII字元的Unicode文件,在傳輸過程中如果使用2個位元組的原Unicode編碼傳輸會造成比較大的浪費。對於這種情況,可以使用UTF-8編碼,這是一種變長編碼,它將基本7位元ASCII字元仍以7位元編碼表示,佔用一個位元組(首位補0)。而遇到與其他Unicode字元混合的情況,將按一定演算法轉換,每個字元使用1-3個位元組編碼,並利用首位為0或1進行辨識。
GB2312:
GB 2312 或GB 2312-80 是中國國家標準簡體中文字符集,全稱《信息交換用漢字編碼字符集・基本集》,又稱GB0,由中國國家標準總局發布,1981年5月1日實施。 GB2312編碼通行於中國大陸;新加坡等地也採用此編碼。中國大陸幾乎所有的中文系統和國際化的軟體都支援GB 2312。
包含內容:6763個漢字,其中一級漢字3755個,二級漢字3008個;同時收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內的682個字符。
技術特徵:每個漢字及符號以兩個位元組來表示。第一個位元組稱為“高位元組”,第二個位元組稱為“低位元組”。 「高位元組」使用了0xA1-0xF7,「低位元組」使用了0xA1-0xFE0xA0)。 由於一級漢字從16區起始,漢字區的「高位元組」的範圍是0xB0-0xF7,「低位元組」的範圍是0xA1-0xFE,佔用的碼位元是72*94=6768。其中有5個空位是D7FA-D7FE。