Задать вопрос
@avion123678

Кодировки в PC?

Здравствуйте, как компьютер понимает какая кодировка у определенного файла? Куда зашиты таблицы кодировок? Когда происходит ввод с клавиатуры, это же ввод ASCII символов?
  • Вопрос задан
  • 157 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Moskus
@Moskus
Компьютеры вообще ничего сами не понимают, никогда.
У некоторых типов файлов кодировка определяется их форматом, потому программы, которые с ними работают, всегда используют нужную кодировку.
У других типов файлов кодировка указывается в заголовке. Например, в HTML для этого есть тег. Так что программы читают его содержимое и интерпретируют кодировку верно.
Таблицы кодировок никуда не "зашиты". Они могут быть частью операционной системы, могут - частью того или иного софта.
Когда происходит ввод с клавиатуры, ASCII тут не при чем. Операционная система получает скан-код клавиши, а дальше генерирует символ в соответствии с тем, какая раскладка клавиатуры включена в данный момент. При этом, в какой код одного и того же символа это превращается, также зависит от конкретной программы. Например, если в этот момент открыта командная строка, а в ней установлена кодовая страница 866, символ кириллицы превратится в два байта из таблицы символов 866. А если открыт Word, то превратится в символ Unicode из более чем двух байт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Компьютер - не понимает никак, для него файл остаётся последовательностью нулей и единиц.
Программы - в зависимости от формата файла, некоторые форматы позволяют указывать кодировку в заголовках, мета-данных или где-то ещё, в некоторых форматах в спецификации забита определённая кодировка и ничего угадывать не надо, некоторые (например, текстовые редакторы) по набору байт эвристически стараются угадать, не всегда делают это правильно, а в случае с однобайтовой кодировкой полагаются на текущую локаль в системе. Таблицы кодировок - зашиты в сами программы либо в библиотеки, используемые программами для декодирования (например, iconv). Касательно клавиатуры, в раскладке клавиатуры содержится таблица, какую клавишу с какими модификаторами в какой символ преобразовывать, там не ASCII используется (т.к. ASCII позволяет использовать только ограниченный набор символов - цифры, базовую латиницу и основные знаки пунктуации)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы