Base 64 Encoding
Base 64 encoding is a way to represent arbitrary data as printable ASCII characters. It is used to represent I2A2 field
values when they might have characters or values that conflict with I2A2 reserved characters and processing.
Base 64 encoding was developed in the Symbolic Systems Resources Group of the Knowledge Systems Laboratory at Stanford University in 1987-88, and was funded by the Biomedical Research Technology Program of the National Institutes of Health under grant number RR-00785.
Base 64 encoding is also described in some Internet Request for Comments (RFC) documents -- for example, numbers 822 and 1521. Internet RFC's are maintained by the Internet Engineering Task Force (IETF) Secretariat.
Base 64 encoding requires insertion of CR/LF pairs every 76 output characters. However, the I2A2 protocol does not allow CR/LF characters to be embedded in data fields. The base 64 conversion functions provided in the external C library do not insert CR/LF pairs, nor can they decode output that contains embedded CR/LF pairs.
I2A2 C Support
The I2A2 external C library contains functions for base 64 encoding and decoding.
Perl modules that handle base 64 are available via the Comprehensive Perl Archive Network.