Даже если вы не разработчик, вы, вероятно, слышали слово 'ASCII'. Это происходит, когда во время серфинга в интернете вы сталкиваетесь с искажённым текстом, который выглядит как инопланетный язык, или получаете техническое сообщение об ошибке типа "код ASCII несовместим".
Что же такое код ASCII, что он воспринимается как 'общий язык' цифрового мира? Сегодня мы узнаем о коде ASCII, который представляет собой самое базовое соглашение о том, как компьютеры понимают человеческий язык.
1. Компьютер знает только числа
Буквы, которые мы видим на экране, такие как 'A', 'B', 'C', на самом деле не являются изображениями или символами для компьютера. Компьютер - это всего лишь калькулятор, который понимает только 0 и 1 (бинарный код).
Итак, как же компьютер хранит символы, введённые с клавиатуры? Необходимо "соглашение" между человеком и компьютером.
"Давайте договоримся, что число 65 будет означать букву 'A'."
"Число 97 будет представлять строчную 'a'."
Таблица, которая систематически организует это соглашение, называется ASCII (American Standard Code for Information Interchange). Как видно из названия, это Американский стандартный код для обмена информацией.
2. Структура кода ASCII: Магия 7 бит
Код ASCII был установлен в 1960-х годах. В то время ресурсы компьютеров были очень ограничены, и необходимо было максимально эффективно представлять символы. Поэтому выбор пал на 7 бит (bit).
-
Всего 128 символов: Количество возможных комбинаций, которое можно выразить с 7 битами, составляет $2^7$, то есть от 0 до 127 всего 128 символов.
-
Составные элементы:
-
Управляющие символы (0~31): Не выводятся на экран, но отвечают за управление связью, переводы строк (Line Feed), табуляцию (Tab) и т. д.
-
Символы, доступные для вывода (32~127): Включают специальные символы, цифры (0-9), заглавные латинские буквы (A-Z) и строчные (a-z).
-
3. Почему мы всё ещё используем ASCII?
Современные технологии достигли огромного прогресса, но код ASCII по-прежнему является корнем цифрового мира. Почему это так?
1) Король совместимости
Даже самая современная и широко используемая система кодирования символов UTF-8 полностью совместима с кодом ASCII. В документе UTF-8 английская буква 'A' имеет одинаковые данные с кодом ASCII. Поэтому при обмене английскими данными между очень старыми легаси-системами и новейшими системами не возникает никаких проблем.
2) Основа программирования
Правила значений ASCII очень полезны при работе с символами в программировании.
-
'A' - это 65, 'a' - это 97.
-
Разница между двумя значениями составляет ровно 32.
Разработчики используют эти числовые правила для преобразования регистров или оптимизации сортировки данных.
3) Самый лёгкий формат данных
Поскольку все символы обрабатываются в 1 байт (Byte), документы, написанные только на английском (латинские буквы), имеют очень маленький объём и быстро обрабатываются. Именно поэтому большинство мировых интернет-протоколов (например, HTTP) основаны на ASCII.
4. Наследие ASCII: Искусство ASCII (ASCII Art)
Код ASCII создал не просто коммуникационный стандарт, но и целую культуру. В эпоху терминалов, когда графика не поддерживалась, люди рисовали изображения только с помощью символов клавиатуры. В популярном японском сериале "電車男", который показывали в конце 1990-х - начале 2000-х годов, есть персонаж, создающий потрясающее искусство из ASCII.
|\---/|
| o_o |
\_^_/
Такая культура, создающая остроумные выражения только из 128 ограниченных символов, по-прежнему часто встречается в комментариях к исходному коду разработчиков или в подписи к e-mail.

5. Критическое ограничение ASCII: мир не говорит только на английском
Но у ASCII есть серьёзный недостаток. Учитывая, что это всего лишь "Американский стандарт (American Standard)".
У маленького вместилища из 7 бит не хватает места для символов из азиатских языков, таких как китайские иероглифы, корейский, японский (CJK), а также для символов из культур, не использующих латинский алфавит, таких как арабский, хинди, кириллица.
Поэтому в прошлом каждая языковая группа должна была создавать свои собственные кодировки (EUC-KR, Shift_JIS, Big5 и т. д.). Если страны, использующие разные методы, обменивались данными, символы искажались до 뷁 или □□ и других непонятных знаков, что было известно как модзибаке (Mojibake, потеря данных символов).
В конечном итоге возникла необходимость унифицировать все символы мира, и так появился Юникод (Unicode). Интересно, что первые 128 позиций в этом огромном Юникоде по-прежнему занимают символы ASCII. Это можно рассматривать как дань уважения к началу цифровой истории.
Резюме
-
Определение: Начальное соглашение, которое сопоставляет символы и числа (0-127) для понимания компьютерами.
-
Характеристика: Содержит только латинский алфавит, цифры и основные специальные символы.
-
Ограничение: Не позволяет выразить символы вне латинского алфавита, включая CJK (корейский, китайский, японский) и арабский.
Код ASCII - это не просто набор чисел. Это результат усилий и эффективности ранних компьютерных инженеров, которые пытались перевести человеческий язык на язык машин, самое основное алфавит цифровой эпохи.
Анонс следующей статьи
Мы выйдем за пределы узкой комнаты кода ASCII и познакомимся с огромным соглашением, которое охватывает все языки мира и эмодзи (😊), принципы юникода (Unicode). Если вам интересно, почему ваши символы искажаются, ожидайте следующего поста!
Комментариев нет.