ANSI и Unicode

Anonim

ANSI vs Unicode

ANSI и Unicode - это два символьных кодировки, которые в какой-то момент широко используются. Использование также является основным различием между ними, поскольку ANSI очень старый и используется такими операционными системами, как Windows 95/98 и старше, в то время как Unicode - это более новая кодировка, которая используется всеми текущими операционными системами сегодня. У ANSI было много ограничений, которые не были очевидны на ранних этапах его использования, но стали болезненно очевидными после того, как компьютер начал распространяться по всему миру.

Основным недостатком ANSI является использование многих кодовых страниц, в зависимости от используемого языка; есть английский язык (известный как западноевропейская латынь), греческий, турецкий, иврит, арабский и многие другие. Нет никаких проблем, если все компьютеры, которые обращаются к данным, используют одну и ту же кодовую страницу, но когда используются разные страницы кода, чтение данных не будет таким же, как и записанные данные. Это может привести к повреждению данных и даже сбоям программы в определенных сценариях.

Причина, по которой ANSI не может разместить, - это использовать только 8 бит для представления каждой кодовой точки. Эта ширина фиксирована и имеет всего 256 различных комбинаций. Для сравнения, Unicode использует максимум 32 бита для каждой кодовой точки; используется в фиксированной ширине в UTF-32. Но поскольку использование четырех байтов для каждого символа - такая огромная трата пространства, кодирование переменной ширины используется в UTF-8 и UTF-16 для экономии места.

Поскольку Unicode является более новым стандартом, ожидается, что более старые операционные системы могут его не поддерживать. Хотя кодовые точки UTF-8 и ANSI в значительной степени идентичны, более старые операционные системы, такие как Windows 95, не могут работать с ним. Поэтому программы, использующие Unicode, не смогут нормально работать в этих операционных системах. Что касается обратного или запускаемых кодированных ANSI программ в новых операционных системах, это возможно, поскольку существуют механизмы для преобразования между ANSI и Unicode. Просто имейте в виду, что преобразование добавляет немного накладных расходов. Это может быть неважно, учитывая сегодняшние компьютеры, но по-прежнему стоит обратить внимание на повышение эффективности программы.

Резюме:

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