由於每個國家的語言都有自己的編碼格式,因此在多語種編輯文本中會出現亂碼,因此Unicode應運而生。Unicode是將這些語言統壹成壹套編碼格式,通常兩個字節代表壹個字符,而壹個字節代表ASCII中的壹個字符,所以如果妳編譯的文本全是英文,使用Unicode編碼需要的存儲空間是ASCII編碼的兩倍,這在存儲和傳輸上都是非常不經濟的。
為了解決上述問題,UTF-8編碼出現了將Unicode編碼轉換為“變長編碼”的方法。UTF 8編碼根據數字將Unicode字符轉換為1-6字節,將英文字母轉換為壹個字節,將常用漢字轉換為三個字節。如果妳編譯的文本是純英文的,UTF 8將非常節省空間,ASCII碼也是UTF 8之壹。
清楚地知道ASCII、Unicode和UTF-8之間的關系後,我們可以總結出計算機系統中字符編碼的常見工作模式:(1)Unicode編碼在計算機內存中統壹使用,當需要保存到硬盤或傳輸時,則轉換為UTF-8編碼。(2)使用記事本編輯時,從文件中讀取的UTF-8字符被轉換為Unicode字符並存儲在內存中。編輯後,Unicode被轉換為UTF 8格式並在保存時保存到文件中。如下圖所示:
瀏覽網頁時,服務器會將動態生成的Unicode內容轉換為UTF 8格式,然後傳輸到瀏覽器: