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