Java基礎知識總結3——ASCII碼&Unicode&UTF-8

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位用來對字符進行編碼。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章