It is a gift to the humanity made by Ken Thompson.
In this charset, each ASCII character keeps its code, and each non-ASCII character is coded with two or more bytes. Consequently, you cannot use standard string functions to deal with UTF-8 strings. You must use the static methods of the String class.
For more information about UTF-8, look at this F.A.Q.