ASCII碼
上世紀60年代,美國製定了一套字符編碼,對英語字符與二進制位之間的關係,做了統一的規定,稱爲ASCII碼。ASCII碼共規定了128個字符的編碼,其中包括32個不能打印出來的控制符號。這128個符號只佔用一個字節的後面7位,最前面的1位統一規定爲0。
缺點:
①不能表示所有字符
②相同的編碼表示的字符不一樣
Unicode編碼
每一個符號都給予一個獨一無二的編碼,使用Unicode沒有亂碼問題。
缺點:
Unicode只是一個符號集,規定了符號的二進制代碼,卻沒有規定這個二進制代碼應該如何存儲,無法區別Unicode和ASCII:計算機無法區分三個字節表示一個符號還是分別表示三個符號。
UTF-8
UTF-8是在互聯網上使用最廣的一種Unicode實現方式,是一種變長的編碼方式。可以使用1-6個字節表示一個符號,根據不同的符號而變化字節長度。
編碼規則:
①對於單字節的UTF-8編碼,該字節的最高位爲0,其餘7位用來對字符進行編碼(等同於ASCII碼)。
②對於多字節的UTF-8編碼,如果編碼包含n個字節,那麼第一個字節的前n位爲1,第一個字節的第n+1位爲0,該字節的剩餘各位用來對字符進行編碼。在第一個字節之後的所有字節,都是最高兩位爲"10",其餘6位用來對字符進行編碼。