please dont rip this site

Data encodings used to transmit binary information via text only systems (email, etc...)

Name / c code RFC Length Description Size increase
uuXXcode uuencode/decode. 3 bytes to 4 24 bits grouped in 4 6 bit chunks using " " to "_" (20h-5Fh). uuencode uses characters that are transformed by some email gateways (e.g. some convert between EBCDIC and ASCII which do not entirely overlap), and there are also several incompatible versions of uuencode including some that map " " to "`". Oldest ~42%
Mime base64 encode / decode. 2045, 1421 as PEM (Privacy Enhanced Mail). 3 bytes to 4 24 bits grouped in 4, 6 bit chunks using A...Z, a...z, 0...9, +, /, =. Output broken in to 64 character lines. The character "=" is used to pad the final group to a full 24 bits. It is translated to nul. Safest ~37%
Quote Printable encode / decode. 2045 1 byte to 3 or 1 20h to 7Eh passed through, others in form =xy[z] where x and y are single hex digits using 0...F hex and z is the optional character that is passed through without encodeing. Least impact on data that is already mostly printable. 3...200%
Charset iso-8859-1 7-bit encoding. 1 byte to 5 or 1 20h to 7Eh passed through, others in form &#nnn [z] where nnn is the decimal value of the byte and z is the optional character that is passed through without encodeing. Stupidest? 10...500%
BinHex 1741 3 to < 4 24 bits grouped in 4, 6 bit chunks using !...-, 0...9, @...[, `...r
simple RLE compression. Best for data with many repeating values.
aencode 3 bytes to 4 24 bits grouped in 4, 6 bit chunks using A...Z, a...z, 0...9, (, ), =. Variation of Base64
base85 adobe From the PostScript Developers Manual Section 4.8.2 ASCII85Decode filter: (thanks to Jason Harper )
This filter decodes data that has been encoded in the ASCII base- 85 encoding and produces binary data.

ASCII base- 85 encoding produces five ASCII printing characters from every four bytes of binary data. Each group of four binary bytes (b1 b2 b3 b4 ) is converted to a group of five encoded characters (c1 c2 c3 c4 c5 ) using the relation:

The five “digits” of the encoded base- 85 number are converted to printable ASCII characters by adding 33 (the ASCII code for !) to each. The resulting data contains only printable ASCII characters with codes in the range 33 (!) to 117 (u).

Two special cases occur during encoding. First, if all five encoded digits are zero, they are represented by the character code 122 (z), instead of by a series of five exclamation points (!!!!!). In addition, if the length of the binary data to be encoded is not a multiple of four bytes, the last partial 4- tuple is used to produce a last, partial output 5- tuple. Given n (1, 2, or 3) bytes of binary data, the encoding first appends 4 n zero bytes to make a complete 4- tuple. This 4- tuple is encoded in the usual way, but without applying the special z case. Finally, only the first n + 1 characters of the resulting 5- tuple are written out. Those characters are immediately followed by the EOD marker, which is the two- character sequence ~>.

The following conditions are errors during decoding: The value represented by a 5- tuple is greater than 2 32 1. A z character occurs in the middle of a 5- tuple. A final partial 5- tuple contains only one character. These conditions never occur in the output produced from a correctly encoded byte sequence.

Most effecient use of available characters when encoding truly binary data. Least Safe. Adobe technical support database notes that you may need to use mime (Base64) encoding to send pdf files on AOL.


NPL c code for mime encode with Base64 and Quote Printable

Error Correction / Detection

see also:


MIME (Multi-purpose Internet Mail Extensions) comprises the IETF specifications RFC 822 (?)(now RFCs 2045 to 2049)

The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable. The encoding and decoding algorithms are simple, but the encoded data are consistently only about 33 percent larger than the uncoded data. This encoding is virtually identical to the one used in Privacy Enhanced Mail (PEM) applications, as defined in RFC 1421.

UUencode is a text-based binary encryption protocol in wide use for the transfer of 8 bit binary files via the 7-bit Internet.

Bin/Hex is the protocol used to transfer both resource and data forks.


file: /Techref/method/encode.htm, 8KB, , updated: 2008/4/10 16:56, local time: 2017/10/21 14:02,

 ©2017 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE! / 

<A HREF=""> Data encodings</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.

Link? Put it here: 
if you want a response, please enter your email address: 
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?

  PICList 2017 contributors:
o List host: MIT, Site host, Top posters @20171021 RussellMc, Van Horn, David, James Cameron, Sean Breheny, IVP, alan.b.pearce, Neil, David C Brown, Bob Blick, Denny Esterline,
* Page Editors: James Newton, David Cary, and YOU!
* Roman Black of Black Robotics donates from sales of Linistep stepper controller kits.
* Ashley Roll of Digital Nemesis donates from sales of RCL-1 RS232 to TTL converters.
* Monthly Subscribers: Gregg Rew. on-going support is MOST appreciated!
* Contributors: Richard Seriani, Sr.

Welcome to!