您好,登錄后才能下訂單哦!
本篇內容主要講解“java架構師必須掌握的編碼有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java架構師必須掌握的編碼有哪些”吧!
編碼在我們日常開發過程中經常有遇到,常見的編碼格式有ASCII、ISO-8859-1、GB2312、GBK、GB18030、UNICODE、UTF-8、UTF-16等,其中GB2312、GBK、GB18030、UTF-8、UTF-16都可以用來表示中文。
為什么有編碼
我們知道計算機中最小的存儲單位是字節(byte),一個字節所能表示的字符數又有限,1byte=8bit,一個字節最多也只能表示255個字符,而世界上的語種又多,都有各種不同的字符,無法用一個byte表示,所以java中的char表示字符就是來解決這種編碼問題的,一個char占兩個字節,所以從char到最小單位byte之間必須經過編碼。
常用編碼
ASCII
全稱為American Standard Code for Information Interchange,美國信息交換標準代碼,這是世界上最通用的單字節編碼系統,主要用來顯示現代英語及其他西歐語言。
ASCII碼用7位表示,只能表示128個字符,0~31表示控制字符如回車、退格、刪除等;32~126表示打印字符即可以通過鍵盤輸入并且能顯示出來的字符,
其中48~57為0到9十個阿拉伯數字,65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其余為一些標點符號、運算符號等,具體可以參考ASCII標準表。
ISO-8859-1
既然ASCII只能表示128個字符,顯示是不能完全表示完的,所以ISO-8859-1擴展了ASCII編碼,在ASCII編碼之上又增加了西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字符號,它是向下兼容ASCII編碼的。
ISO-8859-1也是單字節編碼,但它是一個8位的容器,它能表示256個字符。
GB2312
全稱為信息交換用漢字編碼字符集,是中國于1980年發布,主要用于計算機系統中的漢字處理。GB2312主要收錄了6763個漢字、682個符號。
GB2312覆蓋了漢字的大部分使用率,但不能處理像古漢語等特殊的罕用字,所以后來出現了像GBK、GB18030這種編碼。
GBK
GBK,全稱為Chinese Internal Code Specification,即漢字內碼擴展規范,于1995年制定。它主要是擴展了GB2312,在它的基礎上又加了更多的漢字,它一共收錄了21003個漢字。
GBK是向下兼容GB2312編碼的,也就是說GB2312編碼的漢字可以用GBK正常解碼不會出現亂碼,但用GBK編碼的漢字用GB2312解碼就不一定了。
GB18030
GB18030全稱漢字內碼擴展規范,是現在最新的內碼字集于2000年發布,并于2001年強制執行,包含了中國大部分少數民族的語言字符,收錄漢字數超過70000余個。
它主要采用單字節、雙字節、四字節對字符編碼,它是向下兼容GB2312和GBK的,雖然是我國的強制使用標準,但在實際生產中很少用到,用得最多的反而是GBK和GB2312。
UNICODE
為了自己的語言能在計算機中正常顯示,每個國家和地區都有各自的編碼,所以編碼多了誰也不認識對方的編碼,這時候ISO組織就提出了一種新的編碼叫UNICODE編碼讓全球的文化、字符、符號都能支持。UNICODE在制定時計算機容量已不是問題,所以設計成了固定兩個字節,所有的字符都用16位表示,包括之前只占8位的英文字符等,所以會造成空間的浪費,UNICODE在很長的一段時間內都沒有得到推廣應用。
UTF-16
UTF-16是UNICODE的具體實現,16即16位,UTF-16即是這個來由,定義了UNICODE字符在計算機中的存儲方式,UTF-16同樣使用了兩個字節來表示任何字符,這樣使得操作字符串非常高效,這也是java把UTF-16作為字符在內存中存儲的格式的重要原因。
UTF-16適合在磁盤與內存之間使用,字符和字節的相互轉換會更加簡單和高效,但不適合在網絡上傳輸,因為網絡傳輸可能會損壞字節流。
UTF-8
雖然UTF-16很高效,但也是UNICODE最大的壞處,使得所有單字節字符一定要占兩個字節,存儲空間放大了一倍,這明顯消耗了資源,不符合現在互聯網高速發展的現狀。所以有了UTF-8,它是UNICODE的一種可變長度字符編碼的實現,它可以使用1~6個定長字節來編碼UNICODE字符。
UTF-8對ASCII字符使用單字節存儲,單個字符損壞也不會影響后面的字符,所以UTF-8非常適合在網絡上面傳統,也是現在使用最廣泛的編碼之一。
如果要表示中文,UTF-8編碼效率要大于GBK,小于UTF-16,所以它也是除了GBK之外最理想的編碼方式。
到此,相信大家對“java架構師必須掌握的編碼有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。