有時候,我無法提供整個字符串但隨着截斷的字符串也Base64的API可以對其進行解碼。如何不理解的base64字符串如何Base64的API理解字符串的結尾,而解碼
-1
A
回答
1
如何理解的base64結束串
的你到底有沒有說過這的base64 API你使用,但一般他們會要求您提供字符串的長度爲4個字符的倍數。 base64字符串中的每4個字符對應3個字節。
如果整個二進制數據不是3字節的倍數,最後4個字符包含填充的=
字符以指示所需的長度。有關更多詳細信息,請參閱Wikipedia Base64 article中的填充部分。
0
在Base64中,每個字符代表64個值中的一個:6位值。但字節是8位值,所以base-64編碼數據必須是的倍數 6和8.
那麼,一個6位字符顯然不會填充一個字節,但兩個6位位字符(12位)不完全填充兩個字節。三個6位字符(18位)填充多於兩個字節,但不是三個。但是,四個6位字符(24位)恰好填充了三個8位字節。
所以base64字符串的長度必須是4個字符的倍數,以便能夠用數據填充整個8位字節的倍數。這意味着您可以將base64編碼的數據分割爲四個字符的任意倍數,並且可以工作。但是,如果您將數據分成其他任何位置,則可能無法正常工作。
這也適用於數據的結尾。例如,如果我只有六個8位字節進行編碼(40位),但是base64字符串必須是兩個4位長度爲6位的字符(48位),那麼我就是8位數據。對於那些剩餘的(部分)6位字符=
字符來指示不存在特定數據。
相關問題
- 1. python base64字符串解碼
- 2. java解碼base64字符串
- 3. 解碼base64字符串?
- 4. 如何解碼Base64字符串?
- 5. 解碼編碼的base64字符串
- 6. 的Python:解碼base64編碼字符串
- 7. 解碼的base64字符串C#
- 8. 解碼的base64大文本字符串
- 9. 解碼從Windows Phone的base64字符串
- 10. 解碼base64字符串的圖像
- 11. Android中的Base64解碼字符串
- 12. 解碼Node.js中的Base64字符串
- 13. base64解碼 - 字符串中的nul
- 14. 解碼蟒蛇的base64字符串
- 15. 如何將base64字符串解碼而不存儲它
- 16. 解碼Base64編碼字符串
- 17. Base64編碼/解碼問題:解碼後的字符串是'?'
- 18. 如何在解碼Base64字符串時處理錯誤
- 19. 字符串編碼/解碼問題 - 從結尾丟失字符
- 20. 如何解碼使用base64編碼的圖像字符串
- 21. 如何解碼base64編碼的字符串?
- 22. base64解碼在忍者字符串
- 23. 在Java中解碼Base64字符串
- 24. 在Objective-C中解碼Base64字符串
- 25. 在Grails中解碼Base64字符串
- 26. Base64解碼圖像字符串
- 27. 輸入字符串爲null Base64解碼
- 28. 錯誤解碼base64字符串
- 29. 需要base64解碼這個字符串
- 30. 如何解碼字符串解碼
我正在使用commons-codec-1.4.jar.I想要傳遞一個輸入字符串並使用Base64 API進行解碼。但是我無法爲少數字符串做一個截斷版本。所以我需要知道如何強制結束字符串並生成部分圖像,所以我需要知道將終止截斷字符串並生成部分圖像的通用模式。 – user2295281
@ user2295281:那麼你可以在4個字符的邊界處截斷,或者添加適當的'='字符以使其達到4個字符的邊界。請注意,如果這確實是圖像數據,那麼您可能不會以這種方式獲得有效的圖像。 –
您好我認爲問題不是與Base64,但獲得字節數組時,我使用BufferedImage傳遞BufferedImage中的字節數組bImageFromConvert = ImageIO.read(in);它示出了錯誤 javax.imageio.IIOException:錯誤讀取PNG圖像數據 \t在com.sun.imageio.plugins.png.PNGImageReader.readImage(未知來源) \t在com.sun.imageio.plugins.png。 PNGImageReader.read(Unknown Source) \t at javax.imageio.ImageIO.read(Unknown Source) \t at javax.imageio.ImageIO.read(Unknown Source) – user2295281