What is Unicode?
Unicode is NOT a charset, this is the global table of all world code points.
e.g. U+1F601: 
Encodings (ASCII, latin-1, UTF-8...) may be able to code Unicode in whole or in part.
ASCII and latin-1 can only code a subset of Unicode (resp 128 & 256 code points).
UTF-8, UTF-16 and UTF-32 can code all Unicode code points.
The difference between UTF-8, 16 and 32 is about how they code characters:
- UTF-8 uses a variable number of bytes
- UTF-16 uses a variable number of bytes
- UTF-32 uses a fixed number of 4 bytes
In average, UTF-16 is more efficient for Asian texts compared to UTF-8. But UTF-8 is more widely recommanded as a global standard.