The Unicode Standard supports three encoding forms (UTF-8, UTF-16, UTF-32) that use a common repertoire of characters. These encoding forms allow for encoding as many as a million characters. This is sufficient for all known character encoding requirements, including full coverage of all historic scripts of the world, as well as common notational systems. All three encoding forms encode the same common character repertoire and can be efficiently transformed into one another without loss of data.
UTF-8 is popular for HTML and similar protocols. UTF-8 is a way of transforming all Unicode characters into a variable length encoding of bytes.
UTF-16 is popular in many environments that need to balance efficient access to characters with economical use of storage.
UTF-32 is useful where memory space is no concern, but fixed width, single code unit access to characters is desired.
Source: Unicode Consortium