Другие уже указали достаточно хороших ссылок для начала. Я не перечисляю настоящее руководство Dummy, а скорее некоторые ссылки со страницы Консорциума Unicode. На страницах Консорциума Unicode вы найдете еще несколько причин для использования различных кодировок.
FAQ по Unicode - это достаточно хорошее место, чтобы ответить на некоторые (не все) ваши запросы.
Более краткий ответ о том, почему существует Unicode, представлен в разделе Новичок на сайте Unicode :
Unicode предоставляет уникальный номер для
каждый персонаж, независимо от того, что
Платформа, независимо от того, что программа,
не важно на каком языке.
Что касается технических причин использования UTF-8, UTF-16 или UTF-32, ответ лежит в Техническом введении в Unicode :
UTF-8 популярен для HTML и подобных
протоколы. UTF-8 - это способ
преобразование всех символов Unicode
в кодировку переменной длины
байт. У него есть то преимущество, что
Unicode символы, соответствующие
знакомый набор ASCII имеет то же самое
значения байтов как ASCII, и этот Unicode
символы, преобразованные в UTF-8, могут
использоваться со многими существующими программами
без обширных программ переписывает.
UTF-16 популярен во многих средах
что нужно сбалансировать эффективный доступ
персонажам с экономным использованием
место хранения. Это достаточно компактно и
подходят все используемые персонажи
в одну 16-битную кодовую единицу, в то время как
все остальные персонажи доступны
через пары 16-битных кодовых единиц.
UTF-32 популярен там, где пространство памяти
Не беспокойся, но фиксированная ширина, одинарная
Кодовая единица доступа к символам
желательно. Каждый символ Юникода
закодированы в одном 32-битном кодовом блоке
при использовании UTF-32.
Все три формы кодирования должны быть максимально
4 байта (или 32-битных) данных для каждого
характер.
Общее правило большого пальца заключается в использовании UTF-8, когда преобладающие языки, поддерживаемые вашим приложением, говорят на западе от реки Инд, UTF-16 для противоположного (к востоку от Инда) и UTF-32, если вас это касается об использовании символов с единым хранилищем.
Кстати, UTF-7 не является стандартом Unicode и был разработан в основном для использования в почтовых приложениях.