Skip to content

Latest commit

 

History

History
105 lines (65 loc) · 13.1 KB

chapter1.md

File metadata and controls

105 lines (65 loc) · 13.1 KB

Форматы данных и кодировки. Макросы в Sublime.

Форматы данных и кодировки

Практически любая файловая система иерархична: файлы объединяются в каталоги (папки), которые образуют одно или несколько деревьев.

Источник картинки:https://ru.wikipedia.org/wiki/Файловая-система, открытыйурок.рф/статьи/594965/img3.jpg

Расположение файла в такой структуре описывается с помощью пути. Например, hello.txt в строке C:\Users\Dereza\Documents\Library\hello.txt - это имя файла, а C:\Users\Dereza\Documents\Library - путь к нему.

Кроме того, у файла есть расширение - несколько символов после точки, которые обозначают его тип (формат): txt, doc, jpg, mp3, html... Проще говоря, расширение указывает на то, какая информация (текстовая, графическая и т.д.) находится в файле и как правильно ее раскодировать. Например, если мы попробуем вручную поменять расширение картинки с jpg на txt и затем открыть ее в текстовом редакторе, мы увидим "кракозябры", потому что байтовая последовательность, которая обозначает цвета пикселей, будет расшифрована неправильно -- в данном случае как текстовые символы.

Кодировка текста

Но на этом история с кракозябрами не заканчивается! Наверняка вы сталкивались с тем, что некоторые символы на каком-нибудь сайте отображаются неправильно. Дело в том, что для перевода последовательности нулей и единиц в текстовые символы используется специальная таблица, которая называется кодировкой; если текст был зашифрован с помощью одной кодировки, а расшифрован с помощью другой, то мы увидим кракозябры. Вот, например, текст на португальском языке в UTF-8, декодированный с помощью кириллической кодировки Windows-1251: все символы с диакритическими знаками, специфические для португальского языка, отображаются неправильно.

Краткая история кодировок

Источник:http://popel-studio.com/blog/article/kratkaya-istoriya-kodirovok-ot-ascii-do-utf-8.html

  1. ASCII (1963 год) — 7-битная кодировка, включающая в себя 128 символов: 33 непечатных управляющих символа (влияющих на обработку текста и пробелов) и 95 печатных символов, включая цифры, буквы латинского алфавита в строчном и прописном вариантах и ряд пунктуационных символов. Недостаток: в ASCII не было букв и символов многих национальных алфавитов.

  2. ISO/IEC 646 (1972 год) — группы кодировок, основанных на ASCII, где редко используемые символы из ASCII заменялись на необходимые. Группа включала в себя варианты кодировки для Канады, Китая, Кубы, Германии, Дании, Финляндии, Франции, Великобритании, Греции, Венгрии, Ирландии, Японии, Южной Кореи, Мальты, Норвегии, Швеции и Югославии. Стандартизация кодировок группы позволила свести различия между кодировками разных стран к минимуму.

  3. KOI8 (1974 год, СССР) — Код Обмена Информацией. Как следует из названия, это была 8-битная кодировка, что позволяло включить в нее в два раза больше символов. KOI8 включала в себя цифры, буквы латинского и русского алфавита, а также знаки пунктуации, спецсимволы и псевдографику.

  4. ISO/IEC 8859 (середина 80-х). Ранние кодировки были ограничены 7 битами из-за особенностей некоторых протоколов передачи данных. Однако со временем эти ограничения свою актуальность потеряли, в то время как необходимость в дополнительных символах для языков, использующих латинский алфавит, только росла. Поэтому в середине 80-х началась работа над группой 8-битных кодировок, получившей название ISO/IEC 8859. Все кодировки этой группы были основаны на ASCII.

  5. Windows-125x (начало 90-х ) — группа кодировок, разработанная компанией Microsoft для ОС Windows. В Windows-1251 вошли все символы русского и близких к нему языков: украинского, белорусского, болгарского, сербского и македонского. На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.

  6. UTF-8 (Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-битный», 1993 год) — одна из общепринятых и стандартизированных кодировок текста, которая позволяет хранить символы Юникода, используя переменное количество байт (от 1 до 6). Полностью совместима с ASCII: все символы ASCII в UTF-8 кодируются 7 битами (первый - не значащий). Каждый символ кодировки, отличный от ASCII, состоит из ведущего байта, указывающего длину последовательности, и одного или нескольких продолжающих байт. Юникодные символы можно вводить с клавиатуры с помощью одновременного нажатия комбинации клавиш Alt+XXXX (например, Alt-1, Alt-12, Alt-4657; цифры набираются на Numpad'e) в Windows и с помощью комбинации клавиш Shift+Opt+XXXX на Mac OS.

Unicode -- это стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира. В настоящее время стандарт является доминирующим в Интернете. Посмотрим, как представлена кириллица в юникоде:

Как расшифровать кракозябры?

Если кодировка сбита, то по характеру кракозябр можно понять, в какой кодировке был текст и в какой кодировке он отображается.

_Источник картинки: _https://habrahabr.ru/post/147843/

Попробуйте зайти на этот сайт, скопировать в поле ввода какой-нибудь текст, поменять кодировку и отправить другу для расшифровки (можно использовать вот этот декодер, например).

Если в MS Word или другом текстовом редакторе некоторые буквы заменились на «квадратики», надо отформатировать весь файл в какой-нибудь шрифт с полной поддержкой допетровской кириллицы в Unicode -- например, отсюда.

В Sublime кодировка меняется с помощью_ File > Reopen with Encoding_.

Макросы в Sublime

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

  1. Зайти в меню Tools > Record Macro
  2. В поле текста ввести любой желаемый для записи текст или букву
  3. Save и Stop для записи шаблона. Название шаблона латиницей!
  4. Preferences > Key Bindings

Появится большое окно с кучей шаблонов, нас интересует правая часть с User’s bindings. Добавляем туда строчку следующего вида:

{ "keys": ["alt+shift+c"], "command": "run_macro_file", "args": {"file": "Packages/User/bukva.sublime-macro"} }

  • "keys": ["alt+shift+c"]— это записанное нами сочетание клавиш;
  • "command": "run_macro_file"— говорит Sublime, что необходимо запустить выполнение именно макроса, а не какого-либо другого действия;
  • "args": {"file": "Packages/User/bukva.sublime-macro"}— указывает, какой именно макрос нужно выполнить.

Таким образом, копируем и заполняем только комбинацию клавиш для знака и название файла.

**NB! **При добавлении нескольких строк в key bindings они разделяются запятой!

Дополнительные буквы

  • Є (U+0404), є (U+0454)
  • Ѕ (U+0405), ѕ (U+0455)
  • І (U+0406), і (U+0456)
  • Ї (U+0407), ї (U+0457)
  • Ѡ (U+0460), ѡ (U+0461)
  • Ѣ (U+0462), ѣ (U+0463)
  • Ѥ (U+0464), ѥ (U+0465)
  • Ѧ (U+0466), ѧ (U+0467)
  • Ѩ (U+0468), ѩ (U+0469)
  • Ѫ (U+046A), ѫ (U+046B)
  • Ѭ (U+046C), ѭ (U+046D)
  • Ѯ (U+046E), ѯ (U+046F)
  • Ѱ (U+0470), ѱ (U+0471)
  • Ѳ (U+0472), ѳ (U+0473)
  • Ѵ (U+0474), ѵ (U+0475)
  • Ѹ (U+0478), ѹ (U+0479) (заменять двумя буквами «оу» нежелательно)
  • ҃ (U+0483)
  • Ꙋ (U+A64A), ꙋ (U+A64B)
  • Ꙗ (U+A656), ꙗ (U+A657)