Encode a lazy 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 · c74966e · 2026-09-27
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 lazy ByteString value as Base16 Text
See: RFC-4648 section 8
encodeBase16 "Sun""53756e"
Encode a lazy ByteString value as a Base16 ByteString value
See: RFC-4648 section 8
encodeBase16' "Sun""53756e"
Decode a Base16-encoded lazy ByteString value.
See: RFC-4648 section 8
decodeBase16 $ assertBase16 "53756e""Sun"
Decode a Base16-encoded Text value.
See: RFC-4648 section 8
decodeBase16' $ assertBase16 "53756e""Sun"
Decode an untyped Base16-encoded lazy ByteString value.
See: RFC-4648 section 8
decodeBase16Untyped "53756e"Right "Sun"
decodeBase16Untyped "6x"Left "invalid character at offset: 1"
Decode an untyped Base16-encoded ByteString value leniently, using a strategy that never fails
N.B.: this is not RFC 4648-compliant. It may give you garbage if you're not careful!
decodeBase16Lenient "53756e""Sun"
decodeBase16Lenient "6x6x""f"
Tell whether an untyped lazy ByteString value is base16 encoded.
isBase16 "666f6"False
isBase16 "666f"True
Tell whether an untyped lazy 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