服務器端得到了圖片對應的字節數組,要通過http協議傳輸到android客戶端,用newString()傳入圖片的字節數組,然后傳到客戶端,然后客戶端通過String.getBytes()方法得到字節數組進行解析以后得不到圖片,必須通過Base64編碼,然后客戶端進行Base64解碼才行,為什么?
http協議可以傳輸二進制數據(瀏覽器里面的圖片、視頻、音頻都是二進制數據),問題是傳輸的時候必須保證字節不會改變。你直接將圖片的字節轉化為一個字符串一般是不行的,除非使用的字符集在0~255之間全部有對應的字符,否則就會導致某些字節轉換錯誤,那么客戶端所收到的就不再是原來的那些字節了。base64之所以可以,是因為編碼之后的字符都落在ASCII區間,而ASCII是所有字符編碼都會支持的,因此可以正確傳輸和還原。
還可以看看
其他文章,謝謝您的閱讀。
網站申明:系本文編輯轉載,來源于網絡,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,所有權歸屬原作者。如內容、圖片有任何版權問題,請
聯系我們刪除。