UCS-2 и UTF-16

Anonim

UCS-2 против UTF-16

UCS-2 и UTF-16 представляют собой две схемы кодирования символов, которые используют 2 байта, который состоит из 16 бит, для представления каждого символа; таким образом, 2 и 16 суффиксов. Основное различие между UCS-2 и UTF-16 заключается в том, что сегодня используется. UCS-2 - это более старая схема, которая с тех пор считается устаревшей и заменена гораздо более новым и мощным UTF-16.

UCS-2 - кодирование с фиксированной шириной, которое использует два байта для каждого символа; то есть он может составлять в общей сложности 216 символов или чуть более 65 тысяч. С другой стороны, UTF-16 представляет собой схему кодирования с переменной шириной, которая использует минимум 2 байта и максимум 4 байта для каждого символа. Это позволяет UTF-16 представлять любой символ в Юникоде, используя минимальное пространство для наиболее часто используемых символов. Для большинства 65 000 + символов UCS-2 и UTF-16 имеют одинаковые кодовые точки; поэтому они в значительной степени эквивалентны. Это позволяет приложениям, поддерживающим UTF-16, правильно интерпретировать коды UCS-2. Но другой путь не будет работать из-за многих улучшений в UTF-16.

Одним из указанных улучшений является возможность представления скриптов, которые идут справа налево, а не слева направо. В UTF-16 скрипты могут определять направленность, что позволяет приложению правильно отображать слова, которые хранятся в коде. UCS-2 не обладает этой способностью, поэтому не будет работать со сценариями, такими как арабский и иврит, которые перемещаются справа налево. Другой особенностью UTF-16 является нормализация. Нормализация относится к словам, которые означают одно и то же, но представлены по-разному как идентичные. Например, слова «не могут» и «не могут» идентичны, поскольку последнее является просто сокращением первого. Это очень важно, особенно если вы ищете такие слова, поскольку это позволит получить более полный результат поиска. В UCS-2 это происходит не автоматически, поэтому приложение должно реализовать такую ​​функцию самостоятельно.

На самом деле нет причин выбирать UCS-2 над UTF-16, кроме того, что вам не нужно приложение UTF-16. Во всех аспектах UTF-16 превосходит UCS-2. Он также в значительной степени совместим с обратной связью, поэтому вам не нужно беспокоиться о файлах, закодированных в UCS-2.

Резюме:

  1. UCS-2 устарел и с тех пор был заменен UTF-16
  2. UCS-2 представляет собой схему кодирования с фиксированной шириной, тогда как UTF-16 представляет собой схему кодирования с переменной шириной
  3. Приложения, поддерживающие UTF-16, могут читать файлы UCS-2, но не наоборот
  4. UTF-16 поддерживает право сценариев, в то время как UCS-2 не поддерживает
  5. UTF-16 поддерживает нормализацию, в то время как UCS-2 не