基本概念
- 字符(Character):文字、標點符號、圖形符號、數字等。比如,一個英文字母,一個數字,一個標點符號等都是一個字符。
- 字符集(Character set):字符的集合。比如, ASCII 字符集、GB2312 字符集、Unicode 字符集等。ASCII 字符集 共有 128 個字符,包含 可顯示字符(比如英文大小寫字符、阿拉伯數字)和 控制字符(比如空格鍵、回車鍵);GB2312 字符集 是中國國家標準的簡體中文字符集,包含簡化漢字、一般符號、數字等;Unicode 字符集 則包含了世界各國語言中使用到的所有字符。
- 字符編碼(Character encoding): 將字符編碼為特定的二進制數,以便計算機處理。一般而言,字符集和字符編碼往往被認為是 同義 的概念,選用了某種字符集就相當於選定了該字符編碼。
常見字符編碼
- ASCII:美國製定的一套字符編碼方案,規定了英文字母,數字和一些普通符號跟二進制的轉換關係。比如, A 的二進制表示是 01000001(十進制 65),a 的二進制表示是 01100001 (十進制 97),空格 SPACE 的二進制表示是 00100000(十進制 32)。
- Unicode:ASCII 碼只規定了 128 個字符的編碼,用來表示其他語言是遠遠不夠的,所以,不同的國家和地區制定了自己的編碼方案,比如中國大陸的 GB2312 編碼 和 GBK 編碼等,日本的 Shift_JIS 編碼等等。為了避免不同國家和地區的計算機在數據傳輸的過程中出現的亂碼問題,後來誕生了一套編碼方案叫 Unicode,它為每種語言的每個字符設定了獨一無二的二進制編碼,這樣就可以跨語言,跨平台進行文本處理了。Unicode 標準使用 十六進制數字,而且在數字前面加上 前綴 U+,比如,A 的 unicode 編碼為 U+0041,嚴 的 unicode 編碼為 U+4E25。
- UTF-8:Unicode 存在嚴重的資源浪費問題,於是,後續人們實現了 UTF-16, UTF-32 和 UTF-8。UTF-8 (8-bit Unicode Transformation Format) 是一種針對 Unicode 的 可變長度 字符編碼,它使用一到四個字節來表示字符,例如,ASCII 字符繼續使用一個字節編碼,阿拉伯文、希臘文等使用兩個字節編碼,常用漢字使用三個字節編碼,等等。因此,我們説,UTF-8 是 Unicode 的實現方式之一。
UnicodeEncodeError & UnicodeDecodeError問題 <待續>
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。