@xtccc
2017-01-04T15:31:47.000000Z
字数 598
阅读 3726
开发技巧
val str = "Hello , I'am a string"
val bytes = str.getBytes()
val encoded =
javax.xml.bind.DatatypeConverter.printBase64Binary(bytes)
println(encoded)
val decoded =
javax.xml.bind.DatatypeConverter.parseBase64Binary(encoded)
println(new String(decoded))
输出为
SGVsbG8gLCBJJ2FtIGEgc3RyaW5n
Hello , I'am a string
javax.xml.bind.DatatypeConverter
在JAVA 7中就已经有了,并且速度还挺快(至少比Guava和Sun的实现要快)。在JAVA 8中,还有更好更快的实现。
几种特殊字符串的base64编解码情况:
空白字符串
这里的空白字符串指的是内容全为空白符(如空格、制表符等)的字符串,长度大于0。根据空字符串的长度不同,编码后的结果也是不同的,如下:
空字符串(只含空格)长度 | base64编码后的结果 |
---|---|
1 | IA== |
2 | ICA= |
3 | ICAG |
如果空白字符是\t
,内容也会不同。