BASE64 編碼是一種常用的字元編碼,在很多地方都會用到。JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它們可以非常方便的完成基於 BASE64 的編碼和解碼。
切記:下面兩處編碼必須一致。
獲取位元組流時 res = new sun.misc.BASE64Encoder().encode(s.getBytes("GBK"));
位元組流轉換字串時: return new String(b,"GBK");
完整程式碼如下:
package com.util; import java.io.UnsupportedEncodingException; import sun.misc.BASE64Decoder; /** * base64 編碼、解碼util * * @author lifq * @date 2015-3-4 上午09:23:33 */ public class Base64Util { /** * 將 s 進行 BASE64 編碼 * * @return String * @author lifq * @date 2015-3-4 上午09:24:02 */ public static String encode(String s) { if (s == null) return null; String res = ""; try { res = new sun.misc.BASE64Encoder().encode(s.getBytes("GBK")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return res; } /** * 將 BASE64 編碼的字串 s 進行解碼 * * @return String * @author lifq * @date 2015-3-4 上午09:24:26 */ public static String decode(String s) { if (s == null) return null; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(s); return new String(b,"GBK"); } catch (Exception e) { return null; } } /** * * @return void * @author lifq * @date 2015-3-4 上午09:23:17 */ public static void main(String[] args) { System.out.println(Base64Util.encode("哈哈")); System.out.println(Base64Util.decode("uf65/g==")); } }
限時領取免費Java相關資料,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高併發分散式、大資料、機器學習等技術。
資料傳送門: https://mp.weixin.qq.com/s/u2b_NVNuMuAPE0w4lc45fw
關注下方公眾號即可免費領取: