Вариант дополнения
Платформа и требования к версии: Common (2.2)
enum PaddingOption : Enum<Base64.PaddingOption>
Перечисление возможных вариантов дополнения для кодирования и декодирования Base64.
Константы этого класса-перечисления можно передать функции withPadding, чтобы создать новый экземпляр Base64 с указанным вариантом дополнения. Каждый вариант дополнения влияет на операции кодирования и декодирования экземпляра Base64 следующим образом:
| PaddingOption | При кодировании | При декодировании |
|---|---|---|
| PaddingOption.PRESENT | Добавляет дополнение | Дополнение обязательно |
| PaddingOption.ABSENT | Не добавляет дополнение | Дополнение не должно присутствовать |
| PaddingOption.PRESENT_OPTIONAL | Добавляет дополнение | Дополнение необязательно |
| PaddingOption.ABSENT_OPTIONAL | Не добавляет дополнение | Дополнение необязательно |
Эти варианты обеспечивают гибкость при обработке символов дополнения ('=') и совместимость с различными библиотеками и протоколами Base64.
Примеры
import kotlin.io.encoding.*
import kotlin.test.*
fun main() {
//sampleStart
val format = HexFormat {
upperCase = true
bytes.byteSeparator = " "
}
val bytes = byteArrayOf(0xDE.toByte(), 0x2D, 0x02, 0xC0.toByte())
// The Base64.Default instance is configured with PaddingOption.PRESENT
println(Base64.Default.encode(bytes)) // 3i0CwA==
println(Base64.Default.decode("3i0CwA==").toHexString(format)) // DE 2D 02 C0
// PaddingOption.PRESENT requires the decode input to be properly padded
// Base64.Default.decode("3i0CwA") // will fail with IllegalArgumentException
// Create a new instance with PaddingOption.ABSENT that uses the Base64.Default alphabet
val base64AbsentPadding = Base64.Default.withPadding(Base64.PaddingOption.ABSENT)
println(base64AbsentPadding.encode(bytes)) // 3i0CwA
println(base64AbsentPadding.decode("3i0CwA").toHexString(format)) // DE 2D 02 C0
// PaddingOption.ABSENT requires the decode input not to be padded
// base64AbsentPadding.decode("3i0CwA==") // will fail with IllegalArgumentException
// Create a new instance with PaddingOption.PRESENT_OPTIONAL that uses the Base64.Default alphabet
val base64PresentOptionalPadding = Base64.Default.withPadding(Base64.PaddingOption.PRESENT_OPTIONAL)
println(base64PresentOptionalPadding.encode(bytes)) // 3i0CwA==
// PaddingOption.PRESENT_OPTIONAL allows both padded and unpadded decode inputs
println(base64PresentOptionalPadding.decode("3i0CwA==").toHexString(format)) // DE 2D 02 C0
println(base64PresentOptionalPadding.decode("3i0CwA").toHexString(format)) // DE 2D 02 C0
// However, partially padded input is prohibited
// base64PresentOptionalPadding.decode("3i0CwA=") // will fail with IllegalArgumentException
// Create a new instance with PaddingOption.ABSENT_OPTIONAL that uses the Base64.Default alphabet
val base64AbsentOptionalPadding = Base64.Default.withPadding(Base64.PaddingOption.ABSENT_OPTIONAL)
println(base64AbsentOptionalPadding.encode(bytes)) // 3i0CwA
// PaddingOption.ABSENT_OPTIONAL allows both padded and unpadded decode inputs
println(base64AbsentOptionalPadding.decode("3i0CwA").toHexString(format)) // DE 2D 02 C0
println(base64AbsentOptionalPadding.decode("3i0CwA==").toHexString(format)) // DE 2D 02 C0
// However, partially padded input is prohibited
// base64AbsentOptionalPadding.decode("3i0CwA=") // will fail with IllegalArgumentException
//sampleEnd
}
Элементы
Платформа и требования к версии: Common
Добавляет дополнение при кодировании и допускает его отсутствие при декодировании.
Платформа и требования к версии: Common
Не добавляет дополнение при кодировании и допускает его отсутствие при декодировании.
Свойства
Платформа и требования к версии: Common (2.2)
val entries: EnumEntries<Base64.PaddingOption>
Возвращает представление неизменяемого списка всех элементов перечисления в порядке их объявления.
Функции
Платформа и требования к версии: Common (2.2)
fun valueOf(value: String): Base64.PaddingOption
Возвращает константу перечисления этого типа с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления этого типа. (Пробельные символы не допускаются.)
Платформа и требования к версии: Common (2.2)
fun values(): Array<Base64.PaddingOption>
Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления.
© 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/-padding-option/index.html