在Kotlin中将ByteArray转换为Base64

6

我正在尝试在Kotlin编写的Spring项目中将ByteArray转换为Base64。我已经查看了现有的帖子,但它们没有帮助我。 实际上,我正在尝试将Blob转换为Base64,但目前我已经将Blob转换为ByteArray,现在正在努力将ByteArray转换为Base64。这是我目前正在尝试的内容:

var inByteArray = Base64.encodeBase64(blobAsBytes)         //inByteArray : ByteArray!
var inByteArrayFormatted = Base64Utils.decode(inByteArray) //inByteArrayFormatted : ByteArray

我尝试了这篇帖子中的方法 如何在Java中将字节数组转换为Base64?,但它们只是对字符串进行编码而不是直接转换为Base64。我该如何将一个字节数组转换为Base64呢? 不是编码后的字符串,而是Base64?

感谢您的每一次帮助!


1
你对Base64的理解是什么?因为那个答案正是你需要的,但我认为你有些误解了。在你的代码中,你正在进行Base64编码和解码,这有点多余。 - Shadov
是的,Base64是二进制数据的字符串表示形式,它使用64个字符(a-z、A-Z、0-9和另外两个字符)。 - cactustictacs
2个回答

15

如果您在使用Kotlin和Java,则可以使用java.util.Base64ByteArray编码为String。我编写了一个扩展函数来完成此操作:

fun ByteArray.toBase64(): String = 
    String(Base64.getEncoder().encode(this))

// Use:
val b64 = "asdf".toByteArray().toBase64()
// YXNkZg==

0
val encodedUrl = Base64.getUrlEncoder().encodeToString(oriUrl.toByteArray())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接