Определения кодирования и декодирования несколько субъективны.
Обе являются формами транслитерации , представляющими собой процесс преобразования из одного алфавита в другой.Примерами этого являются ASCII-UTF8, ASCII-base64 и т. Д.
Эти два отличия заключаются в том, что «кодирование» часто используется при транслитерации из используемого формата в некоторый вид передачи или промежуточный формат и декодирование.обратное.Вот где появляется «субъективный» бит. ASCII-UTF8 можно рассматривать как кодирование или декодирование в зависимости от контекста.
Другие форматы, такие как base64, используются почти всегда только для передачи (например, двоичные данные в электронной почте)и как таковое преобразование в них почти повсеместно называется «кодированием», а преобразование - «расшифровкой».
Важным моментом, который необходимо устранить, является то, что что-то вроде ASCII или UTF8 никоим образом не волшебно.Все эти форматы являются просто согласованным кодированием информации в двоичном формате.Таким образом, ASCII 65 - это буква «A» ни по какой другой причине, кроме стандартной.
Форматы Unicode становятся более интересными, поскольку в них проводится различие между кодовой точкой и кодировкой .Юникод определяет кодовые точки для каждого символа.Двоичные данные различны для каждого формата кодирования.Например, см. Символ Unicode 'EURO-CURRENCY SIGN' (U + 20A0) , чтобы увидеть все различные двоичные значения для одной кодовой точки.