From Rosetta Code

Unicode is a mapping from characters in a very large set of languages to code points, together with a set of descriptive metadata about those code points (so that you can know whether they are alphabetic, numeric, symbolic, white-space, etc.)

A number of different mechanisms are used for mapping this to a sequence of bytes. The single most important one (because it embeds ASCII and so is easy to deploy on existing systems) is UTF-8.