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==")); } }
时间: 2024-11-05 21:45:28