文本 | M | a | n | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ASCII編碼 | 77 | 97 | 110 | |||||||||||||||||||||
二進制位 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
索引 | 19 | 22 | 5 | 46 | ||||||||||||||||||||
Base64編碼 | T | W | F | u |
所以,Base64編碼會把3字節的二進制數據編碼為4字節的文本數據,長度增加為原來的4/3。如果要編碼的二進制數據不是3的倍數,最后會剩下1個或2個字節怎么辦?此時,需在原數據后面添加1個或2個零值字節,使其字節數是3的倍數。然后,在編碼后的字符串后面添加1個或2個等號“=”,表示所添加的零值字節數。解碼的時候,會自動去掉。
下面來看一下Base64編碼的優缺點。
優點:可以將二進制數據轉換成可打印字符,方便傳輸數據;對數據進行簡單的加密,肉眼安全。
缺點:內容編碼后的體積會變大,編碼和解碼需要額外的工作量。
它的使用場景有很多,比如將圖片等資源文件以Base64編碼形式直接放于代碼中,使用的時候反Base64后轉換成Image對象使用;有些文本協議不支持不可見字符的傳遞,只能轉換成可見字符來傳遞信息。有時在一些特殊的場合,大多數消息是純文本的,偶爾需要用這條純文本通道傳一張圖片之類的情況發生的時候,就會用到Base64,比如多功能Internet 郵件擴充服務(MIME)就是用Base64對郵件的附件進行編碼的。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
上一篇:編譯和解釋的區別是什么
下一篇:詳細介紹 進程、線程和協程的區別