Base64编码器和解码器

在Android中是否有一个base-64解码器和编码器?

请参阅android.util.Base64

看来这是添加在API版本8或Android 2.2,所以它不会在旧版本的平台上。

但是它的来源是在android/util/Base64.java所以如果需要的话,可以直接复制它旧的版本。

这是如何使用Base64类来编码和解码简单string值的一个例子。

 // String to be encoded with Base64 String text = "Test"; // Sending side byte[] data = null; try { data = text.getBytes("UTF-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } String base64 = Base64.encodeToString(data, Base64.DEFAULT); // Receiving side byte[] data1 = Base64.decode(base64, Base64.DEFAULT); String text1 = null; try { text1 = new String(data1, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 

这个摘录可以包含在Android活动中。

编码:

 private String encodeString(String s) { byte[] data = new byte[0]; try { data = s.getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } finally { String base64Encoded = Base64.encodeToString(data, Base64.DEFAULT); return base64Encoded; } } 

解码:

 private String decodeString(String encoded) { byte[] dataDec = Base64.decode(encoded, Base64.DEFAULT); String decodedString = ""; try { decodedString = new String(dataDec, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } finally { return decodedString; } } 

  String text = "example007"; Log.e("encoded", encodeString(text)); //Output: ZXhhbXBsZTAwNw== Log.e("decoded", decodeString(encodeString(text))); //Output: example007 

这是一个简单的方法,我将使用,直到我意识到这只是在Android API 8 +支持:

 // Has line break public String getBase64(final String input) { return Base64.encodeToString(input.getBytes(), Base64.DEFAULT); } // No line break public String getBase64(final String input) { return Base64.encodeToString(input.getBytes(), Base64.NO_WRAP); } 

如果您希望在string末尾换行,请将标志从Base64.DEFAULT更改为Base64.NO_WRAP

 Base64.encodeToString("yourString".getBytes("UTF-8"), Base64.NO_WRAP); 

base64解码这可能会帮助我们所有人。

Interesting Posts