Android に文字列用の base-64 デコーダーとエンコーダーはありますか?
91136 次
5 に答える
75
これは、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 アクティビティに含めることができます。
于 2012-08-22T20:50:43.147 に答える
33
これは API バージョン 8 または android 2.2 で追加されたようで、古いプラットフォームでは使用できません。
ただし、そのソースはあるandroid/util/Base64.java
ので、必要に応じて、古いバージョン用に変更せずにコピーすることができます。
于 2010-12-01T07:42:44.183 に答える
13
これは、 Android API 8+でのみサポートされていることに気付くまで、私が使用しようとしていた簡単な方法です。
// Has line break
public String getBase64(String input) {
return Base64.encodeToString(input.getBytes(), Base64.DEFAULT);
}
// No line break
public String getBase64(String input) {
return Base64.encodeToString(input.getBytes(), Base64.NO_WRAP);
}
于 2012-08-26T16:06:33.690 に答える
11
エンコードするには:
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
于 2015-12-23T22:21:16.983 に答える
5
文字列の最後に改行を入れたくない場合は、フラグを からに変更します。Base64.DEFAULT
Base64.NO_WRAP
Base64.encodeToString("yourString".getBytes("UTF-8"), Base64.NO_WRAP);
于 2015-05-07T07:24:50.427 に答える