Package org.postgresql.core
Class Encoding
java.lang.Object
org.postgresql.core.Encoding
Representation of a particular character encoding.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Use the charset passed as parameter and tests at creation time whether the specified encoding is compatible with ASCII numbers.protected
Subclasses may use this constructor if they know in advance of their ASCII number compatibility. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
canonicalize
(String string) Indicates that string should be staged as a canonicalized value.decode
(byte[] encodedString) Decode an array of bytes into a string.decode
(byte[] encodedString, int offset, int length) Decode an array of bytes into a string.decodeCanonicalized
(byte[] encodedString) Decode an array of bytes possibly into a canonicalized string.decodeCanonicalized
(byte[] encodedString, int offset, int length) Decode an array of bytes possibly into a canonicalized string.decodeCanonicalizedIfPresent
(byte[] encodedString, int offset, int length) static Encoding
Get an Encoding using the default encoding for the JVM.byte @PolyNull []
Encode a string to an array of bytes.static Encoding
getDatabaseEncoding
(String databaseEncoding) Construct an Encoding for a given database encoding.Get a Reader that decodes the given InputStream using this encoding.Get a Writer that encodes to the given OutputStream using this encoding.static Encoding
getJVMEncoding
(String jvmEncoding) Construct an Encoding for a given JVM encoding.boolean
Returns true if this encoding has characters '-' and '0'..'9' in exactly same position as ascii.name()
Get the name of the (JVM) encoding used.toString()
-
Constructor Details
-
Encoding
Subclasses may use this constructor if they know in advance of their ASCII number compatibility.- Parameters:
encoding
- charset to usefastASCIINumbers
- whether this encoding is compatible with ASCII numbers.
-
Encoding
Use the charset passed as parameter and tests at creation time whether the specified encoding is compatible with ASCII numbers.- Parameters:
encoding
- charset to use
-
-
Method Details
-
hasAsciiNumbers
public boolean hasAsciiNumbers()Returns true if this encoding has characters '-' and '0'..'9' in exactly same position as ascii.- Returns:
- true if the bytes can be scanned directly for ascii numbers.
-
getJVMEncoding
Construct an Encoding for a given JVM encoding.- Parameters:
jvmEncoding
- the name of the JVM encoding- Returns:
- an Encoding instance for the specified encoding, or an Encoding instance for the default JVM encoding if the specified encoding is unavailable.
-
getDatabaseEncoding
Construct an Encoding for a given database encoding.- Parameters:
databaseEncoding
- the name of the database encoding- Returns:
- an Encoding instance for the specified encoding, or an Encoding instance for the default JVM encoding if the specified encoding is unavailable.
-
canonicalize
Indicates that string should be staged as a canonicalized value.This is intended for use with
String
constants.- Parameters:
string
- The string to maintain canonicalized reference to. Must not benull
.- See Also:
-
name
Get the name of the (JVM) encoding used.- Returns:
- the JVM encoding name used by this instance.
-
encode
Encode a string to an array of bytes.- Parameters:
s
- the string to encode- Returns:
- a bytearray containing the encoded string
- Throws:
IOException
- if something goes wrong
-
decodeCanonicalized
Decode an array of bytes possibly into a canonicalized string.Only ascii compatible encoding support canonicalization and only ascii
String
values are eligible to be canonicalized.- Parameters:
encodedString
- a byte array containing the string to decodeoffset
- the offset inencodedString
of the first byte of the encoded representationlength
- the length, in bytes, of the encoded representation- Returns:
- the decoded string
- Throws:
IOException
- if something goes wrong
-
decodeCanonicalizedIfPresent
public String decodeCanonicalizedIfPresent(byte[] encodedString, int offset, int length) throws IOException - Throws:
IOException
-
decodeCanonicalized
Decode an array of bytes possibly into a canonicalized string.Only ascii compatible encoding support canonicalization and only ascii
String
values are eligible to be canonicalized.- Parameters:
encodedString
- a byte array containing the string to decode- Returns:
- the decoded string
- Throws:
IOException
- if something goes wrong
-
decode
Decode an array of bytes into a string.- Parameters:
encodedString
- a byte array containing the string to decodeoffset
- the offset inencodedString
of the first byte of the encoded representationlength
- the length, in bytes, of the encoded representation- Returns:
- the decoded string
- Throws:
IOException
- if something goes wrong
-
decode
Decode an array of bytes into a string.- Parameters:
encodedString
- a byte array containing the string to decode- Returns:
- the decoded string
- Throws:
IOException
- if something goes wrong
-
getDecodingReader
Get a Reader that decodes the given InputStream using this encoding.- Parameters:
in
- the underlying stream to decode from- Returns:
- a non-null Reader implementation.
- Throws:
IOException
- if something goes wrong
-
getEncodingWriter
Get a Writer that encodes to the given OutputStream using this encoding.- Parameters:
out
- the underlying stream to encode to- Returns:
- a non-null Writer implementation.
- Throws:
IOException
- if something goes wrong
-
defaultEncoding
Get an Encoding using the default encoding for the JVM.- Returns:
- an Encoding instance
-
toString
-