導航:首頁 > 編程語言 > base64編碼解碼java

base64編碼解碼java

發布時間:2023-06-19 13:27:27

1. java Base64加碼解碼 Base64.encodeBase64 ( ) 和 new BASE64Enccoder( ).encode( )區別

Base64.encodeBase64 ( ) 可以處理換行符,
new BASE64Enccoder( ).encode( )需要單獨處理換行符。
linux/windows下,推薦使用第一種,不用自己單獨處理換行。

2. java base64解碼 怎麼是亂碼呢

會亂碼的原因是你的編碼不一致導致的
php中的urlencode的編碼是和系統編碼一致的(比如windows默認gb2312,ubuntu默認utf-8)
所以首先需要確定你的系統編碼,之後根據得到的系統編碼在調用java的decode方法的時候,將這個編碼傳入(考慮到你的例子中有繁體字,所以,建議你使用utf-8編碼),以下是我使用utf-8編碼的例子(php環境是ubuntun下)

3. 在 java 中如何進行base64 編碼和解碼


//將s進行BASE64編碼
publicstaticStringgetBASE64(Strings){
if(s==null)returnnull;
return(newsun.misc.BASE64Encoder()).encode(s.getBytes());
}

//將BASE64編碼的字元串s進行解碼
(Strings){
if(s==null)returnnull;
BASE64Decoderdecoder=newBASE64Decoder();
try{
byte[]b=decoder.decodeBuffer(s);
returnnewString(b);
}catch(Exceptione){
returnnull;
}
}
//將BASE64編碼的字元串InputStream進行解碼
publicstaticjava.nio.ByteBuffergetFromBASE64byte(Strings){
if(s==null)
returnnull;
BASE64Decoderdecoder=newBASE64Decoder();
try{
returndecoder.decodeBufferToByteBuffer(s);//decoder.decodeBuffer(s);
}catch(Exceptione){
returnnull;
}
}

//將BASE64編碼的文件進行解碼

ByteBuffervalue=Base64Utils.getFromBASE64byte(nl.item(i*2+1).getTextContent().trim()); FileOutputStreamfos=newFileOutputStream(filename); FileChannelfc=fos.getChannel();
fc.write(value);
fos.flush();
fc.close();


importsun.misc.BASE64Encoder;
importsun.misc.BASE64Decoder;

4. java中如何用base64解碼圖片,並返回圖片,不保存。

給你發個我以前的工具類吧、
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class ImageChange {
/**
* 從path這個地址獲取一張圖纖沒臘片然後轉為base64碼
* @param imgName 圖片的名字 如:123.gif(是帶後綴的)
* @param path 123.gif圖片存放的路徑
* @return
* @throws Exception
*/
public static String getImageFromServer(String imgName,String path)throws Exception{
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
File f = new File(path+imgName);
if(!f.exists()){
f.createNewFile();
}
BufferedImage bi = ImageIO.read(f);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, "gif", baos);
byte[] bytes = baos.toByteArray();
return encoder.encodeBuffer(bytes).trim();
}

/**
* 將一個base64轉換成圖片保存在 path 文件夾下毀滑 名為imgName.gif
* @param base64String
* @param path 是一個文件夾路徑
* @param imgName 圖片名字(沒有後綴)
* @throws Exception
*/
public static String savePictoServer(String base64String,String path,String imgName)throws Exception{
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
byte[] bytes1 = decoder.decodeBuffer(base64String);
ByteArrayInputStream s = new ByteArrayInputStream(bytes1);
BufferedImage bi1 =ImageIO.read(s);

Date timeCur = new Date();
SimpleDateFormat fmtYY = new SimpleDateFormat("yyyy");
SimpleDateFormat fmtMM = new SimpleDateFormat("MM");
SimpleDateFormat fmtDD = new SimpleDateFormat("dd");
String strYY = fmtYY.format(timeCur);
String strMM = fmtMM.format(timeCur);
String strDD = fmtDD.format(timeCur);

String realPath = path+"/"+strYY+"/"+strMM+"/察芹"+strDD;

File dir=new File(realPath);
if(!dir.exists()){
dir.mkdirs();
}
String fileName=path+"\\"+strYY+"\\"+strMM+"\\"+strDD +"\\"+imgName+".gif";
File w2 = new File(fileName);//可以是jpg,png,gif格式
ImageIO.write(bi1, "jpg", w2);//不管輸出什麼格式圖片,此處不需改動

return fileName;
}

public static void main(String[] args) throws Exception {
System.out.println(getImageFromServer("001001.gif","d:"));
}
}

閱讀全文

與base64編碼解碼java相關的資料

熱點內容
貸款申請系統源碼 瀏覽:266
windowsxp文件夾打開後怎麼返回 瀏覽:662
怎麼把pdf變成圖片 瀏覽:795
17年程序員事件 瀏覽:494
iishttp壓縮 瀏覽:29
公司文件加密後拷走能打開嗎 瀏覽:186
headfirstjava中文 瀏覽:894
騰訊雲伺服器怎麼放在電腦桌面 瀏覽:8
批量生成圖片的app哪個好 瀏覽:496
小米10電池校準命令 瀏覽:96
移動商城系統app如何開發 瀏覽:692
用安卓手機如何發高清短視頻 瀏覽:339
怎樣運行java程序運行 瀏覽:553
海南根伺服器鏡像雲伺服器 瀏覽:536
weka聚類演算法 瀏覽:452
視頻伺服器修復是什麼意思 瀏覽:498
python跨平台開發 瀏覽:916
音遇app全民k歌從哪裡下載 瀏覽:646
雲盒子能裝伺服器嗎 瀏覽:796
林漢達pdf 瀏覽:45