Давным-давно
- Unicode имел только столько символов, сколько умещалось в 16 битах, и
- UTF-8 не существует или не является де-факто кодировкой для использования.
Эти факторы привели к тому, что UTF-16 (или, скорее, то, что сейчас называется UCS-2) считалось синонимом «Unicode», потому что в конце концов это была кодировка , которая поддерживала весь Unicode.
Практически, вы увидите, что «Unicode» используется там, где подразумевается «UTF-16» или «UCS-2». Это историческая путаница, которую следует игнорировать, а не распространять. Юникод - это набор символов ; UTF-8, UTF-16 и UCS-2 - это разные кодировки .
(Разница между UTF-16 и UCS-2 заключается в том, что UCS-2 является истинным кодированием 16 битов на «символ» и поэтому кодирует только часть «BMP» (базовая многоязычная плоскость) Unicode, тогда как UTF-16 использует «суррогатные пары» (всего 32 бита) для кодирования символов выше BMP.)