Mime
Начиная с Kotlin: 2.2
val Mime: Base64
Кодирование, определённое в RFC 2045 section 6.8, Base64 Content-Transfer-Encoding.
Для кодирования и декодирования используется «алфавит Base64», определённый в таблице 1 RFC 2045 и состоящий из символов 'A'..'Z', 'a'..'z', '+' и '/'.
Этот экземпляр настроен с параметром заполнения PaddingOption.PRESENT. При необходимости используйте функцию withPadding, чтобы создать новый экземпляр с другим параметром заполнения.
При кодировании каждые 76 символов добавляется CRLF. В конец закодированных данных разделитель строк не добавляется. При декодировании игнорируются все разделители строк и другие символы, не входящие в алфавит Base64.
Примеры
import kotlin.io.encoding.*
import kotlin.test.*
fun main() {
//sampleStart
val encoded = Base64.Mime.encode("Hello? :> ".encodeToByteArray())
println(encoded) // SGVsbG8/IDo+IA==
// Mime encoding ignores all characters not belonging to its alphabet
val decoded = Base64.Mime.decode("Y@{mFz!Z!TY}0")
println(decoded.decodeToString()) // base64
// let's encode some long text
val sourceText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris " +
"nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in " +
"reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla " +
"pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa" +
" qui officia deserunt mollit anim id est laborum."
val encodedText = Base64.Mime.encode(sourceText.encodeToByteArray())
println(encodedText)
val encodedLines = encodedText.lines()
println("${encodedLines.count()} lines, at most ${encodedLines.maxOf { it.length }} characters each") // 8 lines, at most 76 characters each
println("sourceText == Base64.Mime.decode(encodedText).decodeToString() is ${sourceText == Base64.Mime.decode(encodedText).decodeToString()}") // true
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.io.encoding/-base64/-default/-mime.html