xxencoding
xxencode — это кодировка двоичного кода в текст, аналогичная uuencode , в которой используются только буквенно-цифровые символы, а также знаки плюс и минус. Он был изобретен как средство передачи файлов в формате, который выдерживает преобразование набора символов, особенно между ASCII и кодировкой EBCDIC , используемой на мэйнфреймах IBM. [1]
Процесс кодирования
[ редактировать ]Данные в формате xxencoded начинаются со строки вида:
begin <mode> <file>
Где <режим> — это разрешения на чтение/запись/выполнение файла в виде трех восьмеричных цифр, а <файл> — это имя, которое будет использоваться при воссоздании двоичных данных.
xxencode неоднократно принимает группы по три байта, добавляя конечные нули, если осталось менее трех байтов. Эти 24 бита разбиваются на четыре 6-битных числа, каждое из которых затем преобразуется в числовое значение. -й символ в следующей таблице:
1 2 3 4 5 6 0123456789012345678901234567890123456789012345678901234567890123 | | | | | | | +-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Каждая группа из шестидесяти выходных символов (соответствует 45 входным байтам) выводится как отдельная строка, которой предшествует закодированный символ, указывающий количество закодированных байтов в этой строке. Для всех строк, кроме последней, это будет символ «h» (соответствие символа значению 45). Если входные данные не делятся на 45 без остатка, последняя строка будет содержать оставшиеся N выходных символов, которым предшествует количество оставшихся входных байтов, закодированных, как указано выше. Наконец, выводится строка, содержащая только один пробел (или символ плюс), за которой следует еще одна строка, содержащая строку «конец».
Данные в кодировке xxencode обычно отличаются от данных в кодировке Uuencode по первому символу строки («h» для Xxencode, «M» для Uuencode). При этом предполагается наличие в выводе как минимум одной полной строки (45 закодированных байтов/60 символов).
Пример
[ редактировать ]Ниже приведен пример кодирования однострочного текстового файла. В этом примере %0D — это байтовое представление возврата каретки (CR), а %0A — это байтовое представление перевода строки (LF).
- файл
File Name = wikipedia-url.txt File Contents = http://www.wikipedia.org%0D%0A
- xxencoding
begin 644 wikipedia-url.txt OO5FoQ1cj9rRrRmtrOKhdQ4JYOK2iPr7b1Ec+ end
См. также
[ редактировать ]- Кодирование двоичного текста в текст для сравнения различных алгоритмов кодирования.
Внешние ссылки
[ редактировать ]- XXENCODE-XXDECODE - Бесплатные онлайн-кодеры XXEncoder и XXDecoder
Ссылки
[ редактировать ]- ^ Тони Кэтон (февраль 1995 г.). «Ключи от королевства: разблокировка форматов файлов Интернета» . Пенсильванский университет .