ter*_*207 13 java base64 utf-8 character-encoding
我正在使用org.apache.commons.codec.binary.Base64做解码字符串,这是utf8.有时我会得到base64编码的字符串,例如解码后的字符串^@k??????@@.如何检查base64是否正确或解码utf8字符串是否有效utf8字符串?
澄清.我正在使用
public static String base64Decode(String str) {
try {
return new String(base64Decode(str.getBytes(Constants.UTF_8)), Constants.UTF_8);
} catch (UnsupportedEncodingException e) {
...
}
}
public static byte[] base64Decode(byte[] byteArray) {
return Base64.decodeBase64(byteArray);
}
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 27
你应该转换过程中指定的字符集String来byte[],反之亦然.
byte[] bytes = string.getBytes("UTF-8");
// feed bytes to Base64
Run Code Online (Sandbox Code Playgroud)
和
// get bytes from Base64
String string = new String(bytes, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
否则,将使用平台默认编码,其本身不一定是UTF-8.