2009-11-05 93 views
31

使用Base64編碼有什麼優勢?使用Base64編碼的優點是什麼?

我想更好地理解它。我真的需要它嗎?我不能簡單地使用純字符串嗎?

聽說編碼可以達到比原來的(至少對於圖像)放大30%。

+1

Base64編碼爲每3個字節的二進制數據發出4個字節的可打印數據。如果你也定期換行(例如,郵件程序將行長度限制爲64或72個字符),那麼你會爲換行獲得另外一個字節48或54個輸入字節(除非你在獲得2字節時使用CRLF行結束符每行)。 – 2009-11-05 20:24:51

+5

對於缺點,請看這裏http://stackoverflow.com/questions/14418785 – Val 2013-01-19 21:13:42

+0

利用這個鏈接清楚理解。 HTTP://計算器。com/a/201510/3979414 – Kumar 2016-02-17 13:02:48

回答

39

最初一些協議只允許7位,有時只允許6位數據。

Base64的允許一個編碼對這些類型的鏈路的8位數據轉換成用於傳輸6個比特。

電子郵件就是一個例子。

+3

大部分是7位第8位用於許多串行傳輸協議的奇偶校驗。 – 2009-11-05 19:31:23

+1

非常詳細,我從來沒有想過。我感覺更新了。 – Ismael 2009-11-05 19:49:44

+0

您不能在電子郵件中使用二進制字符串,因爲它可能與控制字符相沖突。 – 2013-07-20 17:55:47

37

base64編碼的主要用途的情況是當要與一組受限的字符存儲或傳輸數據;即當你無法在每個字節中傳遞任意值時。

+6

另外,如果你想通過字符串協議(如JSON)發送二進制數據,其中bianry可能會因爲不需要的字符(如引號0x00等)而破壞您的字符串... – 2009-11-05 19:31:43

+1

Rafal:基本上是一個實例「受限字符集」。 – 2009-11-05 19:32:44

+1

我希望我也能批准你的答案。很好的答案。 – Ismael 2009-11-05 19:51:18

0

是否使用它取決於你正在使用它。

我用它主要是用於編碼的二進制數據通過它也確實得到了文本文件的創建機制。例如 - 在傳遞數字證書請求或檢索完成的數字證書時 - 在這些情況下,通過Web窗體上的文本字段將二進制數據作爲Base 64傳遞通常非常方便。

我可能,如果你有一些已經是文本,你只是想傳遞的地方它不會使用它。

5

一個應用程序是在只允許字符的上下文中傳輸二進制數據。例如。在XML文檔/傳輸中。 XML-RPC就是一個例子。

0

我用它繞過傾向於通過電子郵件程序得到咀嚼,因爲它們看起來像文本文件(例如重播HL7成績單)文件。

12
<img alt="Embedded Image" 
    src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." /> 

此代碼將顯示編碼圖像,但沒有人可以從其他網站鏈接到此圖像並使用您的流量。

Base64 decode

3

使用Base64編碼的優點,就像有人說,都可以從二進制傳輸數據,代入式(最常見)ASCII字符。由於接收端可以處理ASCII的可能性,它使它成爲通過文本流傳輸二進制數據的好方法。如果你的情況能夠處理本地二進制數據,就速度等而言,這很可能會產生更好的結果,但是如果不是這樣的話,base64最有可能成爲現實。 JSON是一個很好的例子,你可以從這樣的事情中受益,或者當它需要存儲在某個文本字段中時。給我們更多的細節,我們可以提供更好的定製答案。

相關問題