Java uses UTF-16 for the internal text representation The
representation for String and StringBuilder etc in Java is
UTF-16 How is text represented in the Java platform? The Java
programming language is based on the Unicode character set, and
several libraries implement the Unicode standard. The primitive
data type char in the Java programming language is an unsigned
16-bit integer that can represent a Unicode code point in the
range U+0000 to U+FFFF, or the code units of UTF-16. The various
types and classes in the Java platform that represent character
sequences - char, implementations of java.lang.CharSequence
(such as the String class), and implementations of
java.text.CharacterIterator - are UTF-16 sequences. At the JVM
level, if you are using -XX:+UseCompressedStrings (which is
default for some updates of Java 6) The actual in-memory
representation can be 8-bit, ISO-8859-1 but only for strings
which do not need UTF-16 encoding. and supports a non-standard
modification of UTF-8 for string serialization.