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解码这可能会帮助我们所有人。