@xtccc
2017-01-04T07:31:47.000000Z
字数 598
阅读 4030
开发技巧
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,内容也会不同。
