區別:1、ASCII編碼是1個字節,而Unicode編碼通常是2個位元組。 2.ASCII是單字節編碼,無法用來表示中文;而Unicode可以表示所有語言。 3.用Unicode編碼比ASCII編碼需要多一倍的儲存空間。
本教學操作環境:windows7系統、Dell G3電腦。
ASCII編碼
- ASCII 碼使用指定的7 位元或8 位元二進位數組合來表示128 或256 種可能的字元。標準ASCII 碼也叫基礎ASCII碼,使用7 位二進制數(剩下的1位二進制為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字元。其中最後一位用於奇偶校驗。
- 問題:ASCII是單字節編碼,無法用來表示中文(中文編碼至少需要2個位元組),所以,中國制定了GB2312編碼,用來把中文編進去。但世界上有許多不同的語言,所以需要一個統一的編碼。
Unicode
- #Unicode把所有語言統一到一套編碼裡,這樣就不會再有亂碼問題了。
- Unicode最常使用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字符,就需要4個位元組)。現代作業系統和大多數程式語言都直接支援Unicode。
Unicode和ASCII的區別
- #ASCII編碼是1個位元組,而Unicode編碼通常是2個位元組.
字母A用ASCII編碼是十進位的65,二進位的01000001;而在Unicode中,只需要在前面補0,即為:00000000 01000001。
- 新的問題:如果統一成Unicode編碼,亂碼問題就從此消失了。但是,如果你寫的文字基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的儲存空間,在儲存和傳輸上就十分不划算。
UTF8
- 所以,本著節約的精神,又出現了把Unicode編碼轉換成「可變長編碼」的UTF-8編碼。
- UTF-8編碼把一個Unicode字元依照不同的數字大小編碼成1-6個位元組,常用的英文字母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。如果你要傳輸的文字包含大量英文字符,用UTF-8編碼就能節省空間。
字元 |
ASCII |
#Unicode |
UTF-8 |
A |
01000001 |
#00000000 01000001 |
01000001 |
# #x |
01001110 00101101 |
01001110 00101101 |
|
#從上面的表格還可以發現,UTF-8編碼有一個額外的好處,就是ASCII編碼實際上可以被看成是UTF-8編碼的一部分,所以,大量只支援ASCII編碼的歷史遺留軟體可以在UTF-8編碼下繼續運作。
在電腦記憶體中,統一使用Unicode編碼,當需要儲存到硬碟或需要傳輸的時候,就轉換為UTF-8編碼。
- 用記事本編輯的時候,從檔案讀取的UTF-8字元被轉換成Unicode字元到記憶體裡,編輯完成後,儲存的時候再把Unicode轉換為UTF-8儲存到檔案:
-
瀏覽網頁的時候,伺服器會把動態產生的Unicode內容轉換成UTF-8再傳送到瀏覽器:-
更多相關知識,請造訪
常見問題
欄位!
以上是unicode和ascii的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!