如何在Android Oreo中获得字符串的Base64表示



我需要在Oreoapi级别下将字符串转换为base64。我有以下代码:

public String genAuthKey(String u, String p){
user = u;
pass = p;
key = user+":"+pass;
byte[] encodedBytes = new byte[0];
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
encodedBytes = Base64.getEncoder().encode(key.getBytes());
Log.e("VERSION IS","O");
}else{
encodedBytes = Base64.getEncoder().encodeToString(key.getBytes()).getBytes();
Log.e("VERSION LESS","O");
}
Log.e("key",new String(encodedBytes,Charset.forName("UTF-8")));
return new String(encodedBytes, Charset.forName("UTF-8"));
}

在其他情况下,我需要代码来正确地转换和发送数据。我该怎么做?

首先添加此导入

import android.util.Base64;

然后用版本不可知的变体替换您的方法

public String genAuthKey(String u, String p) {
user = u;
pass = p;
key = user + ":" + pass;
byte[] encodedBytes = Base64.encode(key.getBytes(), Base64.DEFAULT);
Log.e("key", new String(encodedBytes, StandardCharsets.UTF_8));
return new String(encodedBytes, StandardCharsets.UTF_8);
}

享受吧!

尝试使用此代码对kotlin:进行编码

var encodedString = Base64.encode("Your String", Base64.DEFAULT).toString(Charsets.UTF_8)

用于解码:

var decodedString = Base64.decode(encodedString, Base64.DEFAULT).toString(Charsets.UTF_8)

最新更新