Encode a ByteString value as Base16 Text
See: RFC-4648 section 8
Examples:
encodeBase16 "Sun""53756e"
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05
Modulebase16-1.0Haskell2010
This module contains ByteString-valued combinators for implementing the RFC 4648 specification of the Base16 encoding format. This includes lenient decoding variants, as well as internal and external validation for canonicity.
Encode a ByteString value as Base16 Text
See: RFC-4648 section 8
encodeBase16 "Sun""53756e"
Encode a ByteString value as a Base16 ByteString value
See: RFC-4648 section 8
encodeBase16' "Sun""53756e"
Decode a Base16-encoded ByteString value.
See: RFC-4648 section 8
decodeBase16 $ assertBase16 "53756e""Sun"
Decode Base16 Text.
See: RFC-4648 section 8
decodeBase16' $ assertBase16 "53756e""Sun"
Decode an untyped Base16-encoded ByteString value with error-checking.
See: RFC-4648 section 8
decodeBase16Untyped "53756e"Right "Sun"
decodeBase16Untyped "6x"Left "invalid character at offset: 1"
Decode a Base16-encoded ByteString value leniently, using a strategy that never fails
N.B.: this is not RFC 4648-compliant
decodeBase16Lenient "53756e""Sun"
decodeBase16Lenient "6x6x""f"
Tell whether an untyped ByteString value is base16 encoded.
isBase16 "666f6"False
isBase16 "666f"True
Tell whether an untyped ByteString value is a valid Base16 format.
This will not tell you whether or not this is a correct Base16 representation, only that it conforms to the correct alphabet. To check whether it is a true Base16 encoded ByteString value, use isBase16.
isValidBase16 "666f+/6"False
isValidBase16 "666f6"True