Другие уже указали достаточно хорошие ссылки для начала. Я привожу не настоящее руководство для чайников, а несколько указателей со страницы Консорциума Unicode. Вы найдете еще несколько важных причин использования разных кодировок на страницах Консорциума Unicode.
Часто задаваемые вопросы по 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 популярен там, где объем памяти не важен, но желателен доступ к символам с фиксированной шириной и единым кодом. Каждый символ Unicode кодируется в одной 32-битной кодовой единице при использовании UTF-32.
Все три формы кодирования требуют максимум 4 байта (или 32 бита) данных для каждого символа.
Общее эмпирическое правило состоит в том, чтобы использовать UTF-8, когда преобладающие языки, поддерживаемые вашим приложением, говорят к западу от реки Инд, UTF-16 для противоположного (восточнее Инда) и UTF-32, когда вы беспокоитесь об использовании символов с равномерным хранением.
Кстати, UTF-7 не является стандартом Unicode и был разработан в первую очередь для использования в почтовых приложениях.
person
Vineet Reynolds
schedule
21.09.2009