fbpx
维基百科

Uuencode

uuencode這個名字是衍生自"Unix-to-Unix encoding",原先是Unix系統下將二進位的資料藉由uucp郵件系統傳輸的一個編碼程式,是一種二進位到文字的編碼。uudecode是與uuencode搭配的解碼程式,uuencode/decode常見於電子郵件中的檔案傳送以及usenet新聞群組和BBS的貼文等等。近來已被MIME所大量取代。

編碼程序 编辑

Uuencode的編碼結果輸出檔案格式如下:

begin <輸入檔存取模式> <輸入檔名> <編碼內容> [<編碼內容>] [...] ` end 

<輸入檔存取模式> 编辑

沿用自Unix系統檔案存取權限模式,由三個八進位的數字組成,其構成形式為:

擁有人 群組 其他人
讀取(r) 寫入(w) 執行(x) 讀取(r) 寫入(w) 執行(x) 讀取(r) 寫入(w) 執行(x)

舉例而言:當<輸入檔存取模式>666,轉換成二進位碼為110110110,也就是擁有人、群組以及其他人對於這個檔案都有讀取以及寫入的權力。

<輸入檔名> 编辑

將編碼前的檔名填入。

<編碼內容> 编辑

當檔案內容空無一物時,<編碼內容>就不存在。否則<編碼內容>會以下面形式出現:

<長度字元><編碼字元字串> 

Uuencode將輸入資料以每三個位元組為單位進行編碼,如此重複進行。如果最後剩下的資料少於三個位元組,不夠的部份用零補齊。這三個位元組共有24個Bit,以6-bit為單位分為4個群組,每個群組以十進位來表示所出現的數值只會落在0到63之間。將每個數加上32,所產生的結果剛好落在ASCII字元集中可列印字元(32-空白...95-底線)的範圍之中。

<長度字元> 编辑

每60個編碼輸出(相當於45個輸入位元組)將輸出為獨立的一行,每行的開頭會加上長度字元,除了最後一行之外,長度字元都應該是'M'這個ASCII字元(77=32+45),最後一行的長度字元為32+剩下的位元組數目這個ASCII字元。

<編碼字元字串> 编辑

<編碼字元字串>是依照編碼結果依序填入,惟獨要注意一點:當6-bit的資料為零時,編碼應為空白這個字元,但是在uuencode中都用`這個字元來取代,這是因為它們的末六bit都是 100.000。

例外狀況 编辑

前面所說的只適用於使用ASCII字元集的電腦系統,有些比較舊型的電腦他們使用非ASCII字元集(如EBCDIC字元集)。要解決這個問題,Xxencode是較為適切的編碼系統,它只使用到文數字字元集以及加減號字元。

uuencode編碼範例 编辑

簡短的例子 编辑

下面的表格顯示如何將Cat這三個ASCII字元編碼成uuencode的0V%T

原始字元 C a t
原始ASCII碼(十進位) 67 97 116
ASCII碼(二進位) 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0
新的十進位數值 16 54 5 52
+32 48 86 37 84
編碼後的Uuencode字元 0 V % T

因此Cat這三個ASCII字元表示成uuencode的檔案形式:

begin 644 cat.txt #0V%T ` end 

長範例 编辑

底下是引用自英文版的一段文字,將其存成test.txt,引用文字如下:

Each group of sixty output characters (corresponding to 45 input bytes) is output as a separate line preceded by an encoded character giving the number of encoded bytes on that line. For all lines except the last, this will be the character 'M' (ASCII code 77 = 32+45). If the input is not evenly divisible by 45, the last line will contain the remaining N output characters, preceded by the character whose code is 32 + the number of remaining input bytes. Finally, a line containing just a single space (or grave character) is output, followed by one line containing the string "end".

使用uuencode編碼後的檔案為:

begin -666 test.txt M16%C:"!G<F]U<"!O9B!S:7AT>2!O=71P=70@8VAA<F%C=&5R<R`H8V]R<F5S M<&]N9&EN9R!T;R`T-2!I;G!U="!B>71E<RD@:7,@;W5T<'5T(&%S(&$@<V5P M87)A=&4@;&EN92!P<F5C961E9"!B>2!A;B!E;F-O9&5D(&-H87)A8W1E<B!G M:79I;F<@=&AE(&YU;6)E<B!O9B!E;F-O9&5D(&)Y=&5S(&]N('1H870@;&EN M92X@1F]R(&%L;"!L:6YE<R!E>&-E<'0@=&AE(&QA<W0L('1H:7,@=VEL;"!B M92!T:&4@8VAA<F%C=&5R("=-)R`H05-#24D@8V]D92`W-R`](#,R*S0U*2X@ M268@=&AE(&EN<'5T(&ES(&YO="!E=F5N;'D@9&EV:7-I8FQE(&)Y(#0U+"!T M:&4@;&%S="!L:6YE('=I;&P@8V]N=&%I;B!T:&4@<F5M86EN:6YG($X@;W5T M<'5T(&-H87)A8W1E<G,L('!R96-E9&5D(&)Y('1H92!C:&%R86-T97(@=VAO M<V4@8V]D92!I<R`S,B`K('1H92!N=6UB97(@;V8@<F5M86EN:6YG(&EN<'5T M(&)Y=&5S+B!&:6YA;&QY+"!A(&QI;F4@8V]N=&%I;FEN9R!J=7-T(&$@<VEN M9VQE('-P86-E("AO<B!G<F%V92!C:&%R86-T97(I(&ES(&]U='!U="P@9F]L M;&]W960@8GD@;VYE(&QI;F4@8V]N=&%I;FEN9R!T:&4@<W1R:6YG(")E;F0B !+@`` ` end 

Uuencode對照表 编辑

下面的表格顯示uuencode所使用到的ASCII字元集、6-bit二進位碼以及十進位的對照。由上面Cat的例子可以看出其第一個編碼為十進位的16,對應下面表格uuencode十進位表示欄位,可以查出其uuencode的輸出碼為0

可列印的字元 十進位ASCII值 uuencode
二進位表示
uuencode
十進位表示
可列印的字元 十進位ASCII值 uuencode
二進位表示
uuencode
十進位表示
(space) 32 000 000 0   @ 64 100 000 32
! 33 000 001 1   A 65 100 001 33
" 34 000 010 2   B 66 100 010 34
# 35 000 011 3   C 67 100 011 35
$ 36 000 100 4   D 68 100 100 36
% 37 000 101 5   E 69 100 101 37
& 38 000 110 6   F 70 100 110 38
' 39 000 111 7   G 71 100 111 39
( 40 001 000 8   H 72 101 000 40
) 41 001 001 9   I 73 101 001 41
* 42 001 010 10   J 74 101 010 42
+ 43 001 011 11   K 75 101 011 43
, 44 001 100 12   L 76 101 100 44
- 45 001 101 13   M 77 101 101 45
. 46 001 110 14   N 78 101 110 46
/ 47 001 111 15   O 79 101 111 47
0 48 010 000 16   P 80 110 000 48
1 49 010 001 17   Q 81 110 001 49
2 50 010 010 18   R 82 110 010 50
3 51 010 011 19   S 83 110 011 51
4 52 010 100 20   T 84 110 100 52
5 53 010 101 21   U 85 110 101 53
6 54 010 110 22   V 86 110 110 54
7 55 010 111 23   W 87 110 111 55
8 56 011 000 24   X 88 111 000 56
9 57 011 001 25   Y 89 111 001 57
: 58 011 010 26   Z 90 111 010 58
; 59 011 011 27   [ 91 111 011 59
< 60 011 100 28   \ 92 111 100 60
= 61 011 101 29   ] 93 111 101 61
> 62 011 110 30   ^ 94 111 110 62
? 63 011 111 31   _ 95 111 111 63
  ` 96 (1) 000 000 64

參見 编辑

參考資料 编辑

本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。

外部連結 编辑

  • UUDeview (页面存档备份,存于互联网档案馆) - 適用於Unix/Windows/DOS等作業系統,使用Base64, BinHex, uuencode, xxencode, ...等方法編/解碼的開放源碼程式。
  • 在线uuencode编码与解码(页面存档备份,存于互联网档案馆

uuencode, uuencode這個名字是衍生自, unix, unix, encoding, 原先是unix系統下將二進位的資料藉由uucp郵件系統傳輸的一個編碼程式, 是一種二進位到文字的編碼, uudecode是與uuencode搭配的解碼程式, uuencode, decode常見於電子郵件中的檔案傳送以及usenet新聞群組和bbs的貼文等等, 近來已被mime所大量取代, 目录, 編碼程序, 輸入檔存取模式, 輸入檔名, 編碼內容, 長度字元, 編碼字元字串, 例外狀況, uuencode編碼範例,. uuencode這個名字是衍生自 Unix to Unix encoding 原先是Unix系統下將二進位的資料藉由uucp郵件系統傳輸的一個編碼程式 是一種二進位到文字的編碼 uudecode是與uuencode搭配的解碼程式 uuencode decode常見於電子郵件中的檔案傳送以及usenet新聞群組和BBS的貼文等等 近來已被MIME所大量取代 目录 1 編碼程序 1 1 lt 輸入檔存取模式 gt 1 2 lt 輸入檔名 gt 1 3 lt 編碼內容 gt 1 3 1 lt 長度字元 gt 1 3 2 lt 編碼字元字串 gt 1 3 3 例外狀況 2 uuencode編碼範例 2 1 簡短的例子 2 2 長範例 3 Uuencode對照表 4 參見 5 參考資料 6 外部連結編碼程序 编辑Uuencode的編碼結果輸出檔案格式如下 begin lt 輸入檔存取模式 gt lt 輸入檔名 gt lt 編碼內容 gt lt 編碼內容 gt end lt 輸入檔存取模式 gt 编辑 沿用自Unix系統檔案存取權限模式 由三個八進位的數字組成 其構成形式為 擁有人 群組 其他人讀取 r 寫入 w 執行 x 讀取 r 寫入 w 執行 x 讀取 r 寫入 w 執行 x 舉例而言 當 lt 輸入檔存取模式 gt 為 666 轉換成二進位碼為110110110 也就是擁有人 群組以及其他人對於這個檔案都有讀取以及寫入的權力 lt 輸入檔名 gt 编辑 將編碼前的檔名填入 lt 編碼內容 gt 编辑 當檔案內容空無一物時 lt 編碼內容 gt 就不存在 否則 lt 編碼內容 gt 會以下面形式出現 lt 長度字元 gt lt 編碼字元字串 gt Uuencode將輸入資料以每三個位元組為單位進行編碼 如此重複進行 如果最後剩下的資料少於三個位元組 不夠的部份用零補齊 這三個位元組共有24個Bit 以6 bit為單位分為4個群組 每個群組以十進位來表示所出現的數值只會落在0到63之間 將每個數加上32 所產生的結果剛好落在ASCII字元集中可列印字元 32 空白 95 底線 的範圍之中 lt 長度字元 gt 编辑 每60個編碼輸出 相當於45個輸入位元組 將輸出為獨立的一行 每行的開頭會加上長度字元 除了最後一行之外 長度字元都應該是 M 這個ASCII字元 77 32 45 最後一行的長度字元為32 剩下的位元組數目這個ASCII字元 lt 編碼字元字串 gt 编辑 lt 編碼字元字串 gt 是依照編碼結果依序填入 惟獨要注意一點 當6 bit的資料為零時 編碼應為空白這個字元 但是在uuencode中都用 這個字元來取代 這是因為它們的末六bit都是 100 000 例外狀況 编辑 前面所說的只適用於使用ASCII字元集的電腦系統 有些比較舊型的電腦他們使用非ASCII字元集 如EBCDIC字元集 要解決這個問題 Xxencode是較為適切的編碼系統 它只使用到文數字字元集以及加減號字元 uuencode編碼範例 编辑簡短的例子 编辑 下面的表格顯示如何將Cat這三個ASCII字元編碼成uuencode的0V T 原始字元 C a t原始ASCII碼 十進位 67 97 116ASCII碼 二進位 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0新的十進位數值 16 54 5 52 32 48 86 37 84編碼後的Uuencode字元 0 V T因此Cat這三個ASCII字元表示成uuencode的檔案形式 begin 644 cat txt 0V T end 長範例 编辑 底下是引用自英文版的一段文字 將其存成test txt 引用文字如下 Each group of sixty output characters corresponding to 45 input bytes is output as a separate line preceded by an encoded character giving the number of encoded bytes on that line For all lines except the last this will be the character M ASCII code 77 32 45 If the input is not evenly divisible by 45 the last line will contain the remaining N output characters preceded by the character whose code is 32 the number of remaining input bytes Finally a line containing just a single space or grave character is output followed by one line containing the string end 使用uuencode編碼後的檔案為 begin 666 test txt M16 C G lt F U lt O9B S 7AT gt 2 O 71P 70 8VAA lt F C amp 5R lt R H8V R lt F5S M lt amp N9 amp EN9R T R T 2 I G U B gt 71E lt RD 7 W5T lt 5T amp S amp lt V5P M87 A amp 4 amp EN92 P lt F5C961E9 B gt 2 A B E F O9 amp 5D amp H87 A8W1E lt B G M 79I F lt amp AE amp YU 6 E lt B O9B E F O9 amp 5D amp Y amp 5S amp N 1H870 amp EN M92X 1F R amp L L 6YE lt R E gt amp E lt 0 amp AE amp QA lt W0L 1H 7 VEL B M92 T amp 4 8VAA lt F C amp 5R R H05 24D 8V D92 W R R S0U 2X M268 amp AE amp EN lt 5T amp ES amp YO E F5N D 9 amp EV 7 I8FQE amp Y 0U T M amp 4 amp S L 6YE I amp P 8V N amp I B T amp 4 lt F5M86EN 6YG X W5T M lt 5T amp H87 A8W1E lt G L R96 E9 amp 5D amp Y 1H92 C amp R86 T97 VAO M lt V4 8V D92 I lt R S B K 1H92 N 6UB97 V8 lt F5M86EN 6YG amp EN lt 5T M amp Y amp 5S B amp 6YA amp QY A amp QI F4 8V N amp I FEN9R J 7 T amp lt VEN M9VQE P86 E AO lt B G lt F V92 C amp R86 T97 I amp ES amp U U P 9F L M amp W960 8GD VYE amp QI F4 8V N amp I FEN9R T amp 4 lt W1R 6YG E F0B endUuencode對照表 编辑下面的表格顯示uuencode所使用到的ASCII字元集 6 bit二進位碼以及十進位的對照 由上面Cat的例子可以看出其第一個編碼為十進位的16 對應下面表格uuencode十進位表示欄位 可以查出其uuencode的輸出碼為0 可列印的字元 十進位ASCII值 uuencode二進位表示 uuencode十進位表示 可列印的字元 十進位ASCII值 uuencode二進位表示 uuencode十進位表示 space 32 000 000 0 64 100 000 32 33 000 001 1 A 65 100 001 33 34 000 010 2 B 66 100 010 34 35 000 011 3 C 67 100 011 35 36 000 100 4 D 68 100 100 36 37 000 101 5 E 69 100 101 37 amp 38 000 110 6 F 70 100 110 38 39 000 111 7 G 71 100 111 39 40 001 000 8 H 72 101 000 40 41 001 001 9 I 73 101 001 41 42 001 010 10 J 74 101 010 42 43 001 011 11 K 75 101 011 43 44 001 100 12 L 76 101 100 44 45 001 101 13 M 77 101 101 45 46 001 110 14 N 78 101 110 46 47 001 111 15 O 79 101 111 470 48 010 000 16 P 80 110 000 481 49 010 001 17 Q 81 110 001 492 50 010 010 18 R 82 110 010 503 51 010 011 19 S 83 110 011 514 52 010 100 20 T 84 110 100 525 53 010 101 21 U 85 110 101 536 54 010 110 22 V 86 110 110 547 55 010 111 23 W 87 110 111 558 56 011 000 24 X 88 111 000 569 57 011 001 25 Y 89 111 001 57 58 011 010 26 Z 90 111 010 58 59 011 011 27 91 111 011 59 lt 60 011 100 28 92 111 100 60 61 011 101 29 93 111 101 61 gt 62 011 110 30 94 111 110 62 63 011 111 31 95 111 111 63 96 1 000 000 64參見 编辑Base64 BinHex MIME yEnc參考資料 编辑本條目部分或全部内容出自以GFDL授權發佈的 自由線上電腦詞典 FOLDOC 外部連結 编辑UUDeview 页面存档备份 存于互联网档案馆 適用於Unix Windows DOS等作業系統 使用Base64 BinHex uuencode xxencode 等方法編 解碼的開放源碼程式 在线uuencode编码与解码 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Uuencode amp oldid 71695844, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。