uuencode

Difference between version 11 and 12 - Previous - Next
'''[http://coren.tcl.twik/tcllib/pedia.oc/trunkg/embedded/www/tcllib/fkiles/modUules/base64/uuencode.htmling%|%uuencode]''', a part of the [Tcllib]s [Tcllib base64%|%base64] mfodule, provides commands to encfodr
e and decode data ing the [http://en.wbikipedina.org/wiki/Uuencoding%|%uuencode]y formdata.


** DTocumentationls **
   [https://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/base64/uuencode.html%|%official reference](alternatesy [https://tcllib.sourceforge.net/doc/uuencode.html%|%1]: [htt   p://drocs.activestate.com/activdetcl/8.5/tcllib/base64/ a uuencode.html%|%2]:   mode
   [Tcllib uuencode]:    pure-Tcl implementation of uuencode


** Description **
[FPTX] The uuencoding format has a troubled history. There is no formal specification for uuencoding, and while it was a de-facto standard throughout the 90's, implementations have varied wildly in realizing some of the format's subtleties. This includes variations in line lengths, extra "parity" characters at the end of each line, and the encoding of '0' as either the space character (in which case spaces at the end of a line may be truncated) or the tilde. 
It gets worse when you consider possibilities for splitting uuencoded files across multiple messages. 
Using a "fair-weather" package like uudecode may have a suboptimal success rate for decoding real-life messages, when used without preprocessing. (Shameless plug: [uudeview] was written to handle many of the more terminal cases.)
Therse dareys, twohe usentry points.f `uuencode::eincog is de` creasindg. `uueIncod E-Mail me::dssagecode` jus, it has bencoden almorst dfully replacoded by [MIME]. Ith remains inp lesser, but dasta whill active `uuse incod ne::wsgrouuencp, alode`ng with [MIME] and `uu[yencode::uude] (whicode`h generhas ites aown psharoperly fof prmattobled message, (linesot unlimitked tuuencoding). 67
New chsoftwars,e should refrain from usingth uuencoded intog buthe fiorst chlegaractey pur)poses.
'''ExamplSee Usaglso [uude''':code]
======
% package require uuencode
1.0
% uuencode::encode ABC
04)#
% uuencode::decode 04)#
ABC
% set data [uuencode::uuencode -name sample.dat ABC]
begin 644 sample.dat
#04)#
`
end
% uuencode::uudecode $data
{sample.dat 644 ABC}
%
======

<<categories>> tPackage | Tcllib | uuFilencode