Shanraq.org Shanraq.org
Как компьютер различает Ә, Я и A
Общество

Информатика: создаём своего цифрового помощника Урок 13 из 18

Как компьютер различает Ә, Я и A

Узнаем, как один файл сохраняет казахскую Ә, русскую Я и латинскую A, и почему символ не равен байту.

Текст переведён с помощью ИИ.

Где мы на карте

В прошлой части мы научились находить файлы и различать программу и данные. Теперь разберём, как данные могут передать смысл так, чтобы другой человек и другая программа прочитали их одинаково. Сначала назовите собственную догадку, затем проверьте её на числах. После проверки запишите, какую мысль пришлось изменить.

Как компьютер различает Ә, Я и A

Жизненный образ и точная модель

Вы отправили другу название задачи «Әлем». Если он видит непонятные знаки, дело часто в несовпавшем способе прочитать байты. Это похоже на адрес: номер квартиры один, но запись адреса на бумаге может занимать разное место.

Unicode назначает символам кодовые точки: A — U+0041, Я — U+042F, Ә — U+04D8. UTF-8 превращает кодовые точки в байты: A → 41, Я → D0 AF, Ә → D3 98 (в шестнадцатеричной записи). Значит, A занимает один байт, а Я и Ә — по два в UTF-8. Количество видимых знаков, кодовых точек и байтов может различаться, особенно с составными знаками.

Граница образа

«Один символ — один байт» неверно. Кодовая точка Unicode не является готовой последовательностью байтов: для сохранения выбирают кодировку. Даже понятие видимого символа может включать несколько кодовых точек, например букву с отдельным знаком ударения.

Опорный сигнал

видимый знак → кодовая точка Unicode → кодировка UTF-8 → байты

Разобранный пример

Запишите три пары: A / U+0041 / 41; Я / U+042F / D0 AF; Ә / U+04D8 / D3 98. Первое число после U+ — кодовая точка, последнее — байты UTF-8. Прочитайте обратным ходом: D3 98 при UTF-8 означает Ә.

Предскажите до наблюдения

Сколько байтов UTF-8 нужно для текста «AӘ»? Сначала подсчитайте символы: два. Затем сложите 1 + 2 = 3 байта. Не добавляйте сюда размер имени файла или заголовка.

Не прокручивайте сразу к ответу: запишите прогноз и причину. Сравните не только итог, но и каждый промежуточный шаг. Если результат совпал случайно, повторите опыт с другими числами.

Воспроизведите без подсказки

Без таблицы объясните, почему «Я» не обязана занимать столько же байтов, сколько «A». Затем вернитесь к таблице и проверьте два конкретных значения.

Закройте разобранный пример листом бумаги. Восстановите цепочку по короткому сигналу, проговорите смысл каждого перехода и лишь затем откройте пример для самопроверки. Если застряли, посмотрите только предыдущий шаг.

Найдите и исправьте ошибку

«U+04D8 — это байты D4 D8». Исправьте смешение кодовой точки и кодировки: в UTF-8 для Ә записываются D3 98. Кодировку надо назвать явно.

Перенос в новую ситуацию

Друг сохранил казахский текст в UTF-8, а другая программа читает его как иную кодировку. Предскажите результат и предложите проверку: убедиться в кодировке при записи и чтении, затем сравнить исходный текст после повторного открытия.

Изменение проекта

Создайте пробный файл с названием задачи «Әлем» и строкой «Я и A». Укажите в FORMAT.md, что файлы проекта сохраняются в UTF-8. Закройте и откройте файл вновь; проверьте все три буквы. Не используйте реальные личные данные.

Задание

Составьте маленькую таблицу для A, Я, Ә: кодовая точка, байты UTF-8 и число байтов. Объясните, почему число знаков не позволяет точно узнать размер текста.

Сдавайте не фразу «понял», а проверяемое доказательство: таблицу, расчёт, файл или точный ответ с объяснением. Используйте вымышленные данные. Попросите другого человека повторить действие по вашему описанию; если ему приходится угадывать, уточните правило.

Возврат через 1, 7 и 30 дней

Завтра восстановите путь от знака до байтов. Через неделю объясните разницу между U+04D8 и D3 98. Через месяц проверьте перенос файла между двумя программами.

Следующий урок: Фотография как сетка чисел

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить доказательство проекта

Запишите наблюдение, объяснение, исправление ошибки и изменение своего проекта. Модель укажет первую перепутанную или недоказанную связь, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.