Практически любая файловая система иерархична: файлы объединяются в каталоги (папки), которые образуют одно или несколько деревьев.
Источник картинки: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
-
ASCII (1963 год) — 7-битная кодировка, включающая в себя 128 символов: 33 непечатных управляющих символа (влияющих на обработку текста и пробелов) и 95 печатных символов, включая цифры, буквы латинского алфавита в строчном и прописном вариантах и ряд пунктуационных символов. Недостаток: в ASCII не было букв и символов многих национальных алфавитов.
-
ISO/IEC 646 (1972 год) — группы кодировок, основанных на ASCII, где редко используемые символы из ASCII заменялись на необходимые. Группа включала в себя варианты кодировки для Канады, Китая, Кубы, Германии, Дании, Финляндии, Франции, Великобритании, Греции, Венгрии, Ирландии, Японии, Южной Кореи, Мальты, Норвегии, Швеции и Югославии. Стандартизация кодировок группы позволила свести различия между кодировками разных стран к минимуму.
-
KOI8 (1974 год, СССР) — Код Обмена Информацией. Как следует из названия, это была 8-битная кодировка, что позволяло включить в нее в два раза больше символов. KOI8 включала в себя цифры, буквы латинского и русского алфавита, а также знаки пунктуации, спецсимволы и псевдографику.
-
ISO/IEC 8859 (середина 80-х). Ранние кодировки были ограничены 7 битами из-за особенностей некоторых протоколов передачи данных. Однако со временем эти ограничения свою актуальность потеряли, в то время как необходимость в дополнительных символах для языков, использующих латинский алфавит, только росла. Поэтому в середине 80-х началась работа над группой 8-битных кодировок, получившей название ISO/IEC 8859. Все кодировки этой группы были основаны на ASCII.
-
Windows-125x (начало 90-х ) — группа кодировок, разработанная компанией Microsoft для ОС Windows. В Windows-1251 вошли все символы русского и близких к нему языков: украинского, белорусского, болгарского, сербского и македонского. На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.
-
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_.
Макросы позволяют, в числе прочего, задать команды для спецсимволов -- например, букв допетровской кириллицы -- чтобы не копировать их откуда-нибудь каждый раз. Чтобы создать макрос, нужно:
- Зайти в меню Tools > Record Macro
- В поле текста ввести любой желаемый для записи текст или букву
- Save и Stop для записи шаблона. Название шаблона латиницей!
- 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)