背景:我正在使用Java 1.8中新增的java.util.Base64类。
在文档中,它指定encodeToString采用一个字节数组(还有其他一些选项,但byte []是我正在使用的选项)。但是,文档未指定字节数组的编码方式。这是我的功能代码:
import java.util.Base64;
import java.util.Base64.Encoder;
public class Test64 {
public static void main(String[] args){
try{
System.out.println(print64("This should be base64"));
} catch(Exception e) {
e.printStackTrace();
}
}
public static String print64(String test) throws Exception {
String test64 = "";
byte[] testBytes = test.getBytes("US-ASCII");
Base64.Encoder encoder64 = Base64.getUrlEncoder();
test64 = encoder64.encodeToString(testBytes);
return test64;
}
}
我的问题是Base64 encodeToString是否将接受带任何编码的byte []。我已经尝试过US-ASCII和UTF-8,它们都可以使用,但我希望能得出一个概括性的结论。
该文档未指定编码,因此任何byte[]
数据都可以使用。Base64转换是数字形式,而不是面向字符的,因此,解释Base64数字的人必须知道它的含义。因此,只要您的文档清楚如何解释字节,就可以将Base64字符串用于任何数据序列化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句