Class Encoding

java.lang.Object
org.postgresql.core.Encoding

public class Encoding extends Object
Representation of a particular character encoding.
  • Constructor Details

    • Encoding

      protected Encoding(Charset encoding, boolean fastASCIINumbers)
      Subclasses may use this constructor if they know in advance of their ASCII number compatibility.
      Parameters:
      encoding - charset to use
      fastASCIINumbers - whether this encoding is compatible with ASCII numbers.
    • Encoding

      protected Encoding(Charset 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

      public static Encoding getJVMEncoding(String jvmEncoding)
      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

      public static Encoding getDatabaseEncoding(String databaseEncoding)
      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

      public static void canonicalize(String string)
      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 be null.
      See Also:
    • name

      public String name()
      Get the name of the (JVM) encoding used.
      Returns:
      the JVM encoding name used by this instance.
    • encode

      public byte @PolyNull [] encode(@PolyNull String s) throws IOException
      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

      public String decodeCanonicalized(byte[] encodedString, int offset, int length) throws IOException
      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
      offset - the offset in encodedString of the first byte of the encoded representation
      length - 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

      public String decodeCanonicalized(byte[] encodedString) throws IOException
      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

      public String decode(byte[] encodedString, int offset, int length) throws IOException
      Decode an array of bytes into a string.
      Parameters:
      encodedString - a byte array containing the string to decode
      offset - the offset in encodedString of the first byte of the encoded representation
      length - the length, in bytes, of the encoded representation
      Returns:
      the decoded string
      Throws:
      IOException - if something goes wrong
    • decode

      public String decode(byte[] encodedString) throws IOException
      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

      public Reader getDecodingReader(InputStream in) throws IOException
      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

      public Writer getEncodingWriter(OutputStream out) throws IOException
      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

      public static Encoding defaultEncoding()
      Get an Encoding using the default encoding for the JVM.
      Returns:
      an Encoding instance
    • toString

      public String toString()
      Overrides:
      toString in class Object