1. 程式人生 > >Groovy中 Base64 URL和檔名安全編碼

Groovy中 Base64 URL和檔名安全編碼

Base64 URL和檔名安全編碼

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!'