簡體   English   中英

在Android中使用Base64

[英]Using Base64 in android

我正在將圖像轉換為字節數組然后轉換為base64字符串,它可以隱蔽並完美解碼,但是當我使用php將字符串保存到mysql數據庫並從數據庫中檢索到它時,它不會解碼並表示錯誤的base64

這是我的代碼。

PHP

$sql = "insert into users(username, password, email,mob,imagetext)
                            values ('".$username."', '".$password."', '".$email."', '".$mob."', '".$imageText."') ";                            

安卓

編碼

 ByteArrayOutputStream baos = new ByteArrayOutputStream();  
 Bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
 byte[] b = baos.toByteArray();
 String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);

解碼

 byte[] decodedByte = Base64.decode(value, Base64.DEFAULT);                     
 b = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);

嘗試從Base64.DEFAULT更改Base64編碼選項。 您應該使用Base64.URL_SAFE,它將使用發送到您的php腳本時不需要進行URL編碼的字符。 還可以考慮使用Base64.NO_WRAP,它將阻止將MIME新行添加到base 64輸出中。

根據以上答案,編碼:

 String imageEncoded = Base64.encodeToString(b,Base64.NO_WRAP | Base64.URL_SAFE);

解碼:

 byte[] decodedByte = Base64.decode(value, Base64.NO_WRAP | Base64.URL_SAFE);       

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM