Groovy支持Base64编码很长一段时间。 从Groovy 2.5.0开始,我们还可以使用Base64 URL和Filename Safe编码来使用encodeBase64Url
方法对字节数组进行编码。 结果是一个Writable
对象。 我们可以在Writable
对象上调用toString
方法来获得String
值。 可以使用添加到String
类的decodeBase64Url
方法使用相同的编码对编码的String
值进行解码。
在下面的示例Groovy代码中,我们对字节数组进行编码和解码:
import static java.nio.charset.StandardCharsets.UTF_8
def message = 'Groovy rocks!'
// Get bytes array for String using UTF8.
def messageBytes = message.getBytes(UTF_8)
// Encode using Base64 URL and Filename encoding.
def messageBase64Url = messageBytes.encodeBase64Url().toString()
// Encode using Base64 URL and Filename encoding with padding.
def messageBase64UrlPad = messageBytes.encodeBase64Url(true).toString()
assert messageBase64Url == 'R3Jvb3Z5IHJvY2tzIQ'
assert messageBase64UrlPad == 'R3Jvb3Z5IHJvY2tzIQ=='
// Decode the String values.
assert new String(messageBase64Url.decodeBase64Url()) == 'Groovy rocks!'
assert new String(messageBase64UrlPad.decodeBase64Url()) == 'Groovy rocks!'
用Groovy 2.5.0编写。