我有點好奇,爲什麼要在base64上使用十六進制編碼。在我看來,基地64更有效率。特別是,爲什麼數據庫似乎總是使用十六進制編碼?這是一個歷史問題,還是我錯過了十六進制編碼的東西?二進制數據的十六進制編碼的目的是什麼?
回答
你必須是一個真正的極客,在屏幕上閱讀BASE64
。
在Oracle
,當我運行HEXTORAW
,我能得到一個什麼樣的RAW
領域的一些想法,但我不能BASE64
。比如,當我看到很多0x3F
的時候,我知道有一些編碼。
而在內部,這些只是二進制字節,沒有其他需要對它們進行編碼,而是顯示給屏幕另一側的人。
我想你的數據庫是真的存儲數據爲二進制,但查詢編輯器將顯示它使用十六進制編碼。這是SQL Server查詢分析器將執行的操作。
我想這僅僅是個人喜好的問題......十六進制是迄今爲止我更容易閱讀,然後在Base32或Base64
東西它是有效的空間利用和可讀性之間的良好折衷。位模式在十六進制中變得非常明顯,而其他基地則不太清楚。
這是更容易閱讀,0x8080或32896?我會說十六進制值是。
它也有每個十六進制數字相當於一個半字節(因此每對等於一個字節)的好的屬性。
要容易得多,使進制的感覺在你的腦袋比基地64
至於數據庫,以及牢記之間存在數據的顯示,它是如何存儲的差異。這很可能只是將數據顯示爲十六進制。
如果您想將結果值用作Windows上的文件名,Base64不起作用,因爲base64同時使用大寫和小寫字母。我敢肯定還有其他時候,由於類似原因無法使用它。
同意其他有關可讀性的答案 - 十六進制數字在8位字節上很好地對齊,而base64「數字」沒有,並且一個數字可以包含兩個字節的一部分。
有點像角落的情況,但不要使用base64完全一樣。 – 2009-10-10 19:36:17
對於字符串存儲(帶有「潛在的」XML安全編碼),使用ASCII 85可以獲得更高的效率,因爲它是5/4膨脹而不是base64的4/3。
但是,「讀」base64甚至更難。並且很多應用程序經常支持它,所以您必須編寫自己的類/函數來執行編碼和解碼。
- 1. 什麼是十六進制?
- 2. 什麼是十六進制編輯器?
- 3. 轉換二進制,十進制,六進制等位的作用是什麼?
- 4. 什麼是這種格式?二進制?十六進制?
- 5. 獲得負數的二進制補碼的十六進制
- 6. 將十六進制轉換爲二進制到十六進制?
- 7. 爲什麼typeof十六進制數或二進制數Uint64,而十進制數的類型是Int64?
- 8. 什麼是十六進制的NULL
- 9. O_APPEND的十六進制值是什麼?
- 10. UCS2十六進制編碼
- 11. 十六進制,八進制,二進制到十進制(C++)
- 12. 二進制,八進制,十六進制到十進制程序
- 13. Python中十六進制數的二進制補碼
- 14. 什麼類型的數據(二進制,十六進制...)在列中格式化?
- 15. C#編碼:十六進制到十進制&字符編碼
- 16. 什麼是PHP的蟒蛇吊墜編碼('十六進制')?
- 17. 十進制數的二進制補碼
- 18. Clojure等價於Python的編碼('十六進制')和解碼('十六進制')
- 19. 十六進制到二進制轉換
- 20. 十六進制轉換爲二進制
- 21. Python二進制到多十六進制
- 22. 大十六進制到二進制
- 23. 轉換十六進制到二進制
- 24. 二進制到十六進制轉換
- 25. PHP十六進制和二進制
- 26. 十六進制轉換爲二進制
- 27. 將帶符號的十進制轉換爲使用二進制補碼編碼的十六進制
- 28. 能猜一個字符編碼看二進制/十六進制數據嗎?
- 29. 十六進制爲二進制形式,需要說明什麼?
- 30. 爲什麼printf自動將%x%o%d轉換爲十六進制十六進制和十二進制
如果您需要通過ASCII發送某個地方,將其解碼回二進制並使用,則只需將其轉換爲base64即可。 – 2009-07-06 08:08:03