BaseEncoding.base32().encode("foo".getBytes(Charsets.US_ASCII))
returns the string "MZXW6===", and
byte[] decoded = BaseEncoding.base32().decode("MZXW6===");
...returns the ASCII bytes of the string "foo".
By default, BaseEncoding's behavior is relatively strict and in accordance with RFC
4648. Decoding rejects characters in the wrong case, though padding is optional. To modify
encoding and decoding behavior, use configuration methods to obtain a new encoding with modified
behavior:
BaseEncoding.base16().lowerCase().decode("deadbeef");
Warning
BaseEncoding instances are immutable. Invoking a configuration method has no effect on the receiving instance; you must store and use the new encoding instance it returns, instead.
// Do NOT do this
BaseEncoding hex = BaseEncoding.base16();
hex.lowerCase(); // does nothing!
return hex.decode("deadbeef"); // throws an IllegalArgumentException
It is guaranteed that encoding.decode(encoding.encode(x)) is always equal to x, but the reverse does not necessarily hold.
| Encoding | Alphabet | char:byte ratio
| Default padding | Comments |
|---|---|---|---|---|
base16()
| 0-9 A-F | 2.00 | N/A | Traditional hexadecimal. Defaults to upper case. |
base32()
| A-Z 2-7 | 1.60 | = | Human-readable; no possibility of mixing up 0/O or 1/I. Defaults to upper case. |
base32Hex()
| 0-9 A-V | 1.60 | = | "Numerical" base 32; extended from the traditional hex alphabet. Defaults to upper case. |
base64()
| A-Z a-z 0-9 + / | 1.33 | = | |
base64Url()
| A-Z a-z 0-9 - _ | 1.33 | = | Safe to use as filenames, or to pass in URLs without escaping |
All instances of this class are immutable, so they may be stored safely as static constants.
| Modifier and Type | Class and Description |
|---|---|
| private static class | |
| pack-priv static class | |
| pack-priv static class | |
| public static class | BaseEncoding.DecodingException
Exception indicating invalid base-encoded input encountered while decoding. |
| pack-priv static class | |
| pack-priv static class |
| Modifier and Type | Field and Description |
|---|---|
| private static final BaseEncoding | |
| private static final BaseEncoding | |
| private static final BaseEncoding | |
| private static final BaseEncoding | |
| private static final BaseEncoding |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public static BaseEncoding | |
| public static BaseEncoding | |
| public static BaseEncoding | base32Hex()
The "base32hex" encoding specified by RFC 4648 section 7, Base 32 Encoding with Extended Hex Alphabet. |
| public static BaseEncoding | |
| public static BaseEncoding | base64Url()
The "base64url" encoding specified by RFC 4648 section 5, Base 64 Encoding with URL and Filename Safe Alphabet, also sometimes referred to as the "web safe Base64." (This is the same as the base 64 encoding with URL and filename safe alphabet from RFC 3548.) The character |
| public abstract boolean | canDecode(CharSequence chars)
Determines whether the specified character sequence is a valid encoded string according to this encoding. |
| public final byte[] | decode(CharSequence chars)
Decodes the specified character sequence, and returns the resulting |
| pack-priv final byte[] | decodeChecked(CharSequence chars)
Decodes the specified character sequence, and returns the resulting |
| pack-priv abstract int | |
| public final ByteSource | decodingSource(CharSource encodedSource)
Returns a |
| public abstract InputStream | decodingStream(Reader reader)
Returns an |
| public String | |
| public final String | encode(byte[] bytes, int off, int len)
Encodes the specified range of the specified byte array, and returns the encoded |
| pack-priv abstract void | |
| public final ByteSink | encodingSink(CharSink encodedSink)
Returns a |
| public abstract OutputStream | encodingStream(Writer writer)
Returns an |
| private static byte[] | |
| public abstract BaseEncoding | ignoreCase()
Returns an encoding that behaves equivalently to this encoding, but decodes letters without regard to case. |
| pack-priv static Reader | |
| public abstract BaseEncoding | lowerCase()
Returns an encoding that behaves equivalently to this encoding, but encodes and decodes with lowercase letters. |
| pack-priv abstract int | |
| pack-priv abstract int | |
| public abstract BaseEncoding | omitPadding()
Returns an encoding that behaves equivalently to this encoding, but omits any padding characters as specified by RFC 4648 section 3.2, Padding of Encoded Data. |
| pack-priv static Appendable | |
| pack-priv static Writer | |
| pack-priv CharSequence | |
| public abstract BaseEncoding | upperCase()
Returns an encoding that behaves equivalently to this encoding, but encodes and decodes with uppercase letters. |
| public abstract BaseEncoding | withPadChar(char padChar)
Returns an encoding that behaves equivalently to this encoding, but uses an alternate character for padding. |
| public abstract BaseEncoding | withSeparator(String separator, int n)
Returns an encoding that behaves equivalently to this encoding, but adds a separator string
after every |