[关闭]
@xtccc 2017-01-04T15:31:47.000000Z 字数 598 阅读 3726

base64编码与解码

给我写信
GitHub

此处输入图片的描述

开发技巧




base64的编码与解码

  1. val str = "Hello , I'am a string"
  2. val bytes = str.getBytes()
  3. val encoded =
  4. javax.xml.bind.DatatypeConverter.printBase64Binary(bytes)
  5. println(encoded)
  6. val decoded =
  7. javax.xml.bind.DatatypeConverter.parseBase64Binary(encoded)
  8. println(new String(decoded))

输出为

SGVsbG8gLCBJJ2FtIGEgc3RyaW5n
Hello , I'am a string

javax.xml.bind.DatatypeConverter在JAVA 7中就已经有了,并且速度还挺快(至少比Guava和Sun的实现要快)。在JAVA 8中,还有更好更快的实现。



几种特殊字符串的base64编解码情况:

  1. 空字符串
    这里的空字符串指的是长度为0的字符串,它在base64编码后的结果也是一个空字符串。

  2. 空白字符串
    这里的空白字符串指的是内容全为空白符(如空格、制表符等)的字符串,长度大于0。根据空字符串的长度不同,编码后的结果也是不同的,如下:

    空字符串(只含空格)长度 base64编码后的结果
    1 IA==
    2 ICA=
    3 ICAG

    如果空白字符是\t,内容也会不同。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注