E-mail只能傳送ASCII碼(美國國家標準信息交換碼)格式的文字信息,ASCII碼是7位代碼,非ASCII碼格式的文件在傳送過程中就需要先編成7位的ASCII代碼,然后才能通過E-mail進行傳送;如果不經過編碼,則在傳送過程中會因為ASCII碼7位的限制而被分解,分解之后只會讓收信方看到一堆雜亂的ASCII字符。經過編碼后的文件,在傳送過程中可順利傳送,不會有“被截掉一位”的危險。但是收信方必須具有相應的解碼程序,將這份經過編碼的東西還原,才能看到發信人要傳送的信息是什么。
有一點要注意:大部分的人認為“文本文件不需要編碼”,但我們的中文是屬于8位代碼的文字,并不是標準的ASCII碼格式,由于在國內中文是通行的文字,所以大部分的郵件服務器都已能夠處理GB內碼的文件,因而不需要做這種編碼/解碼的操作,可以直接傳送。但如果要送中文郵件到國外,就需要經過這種轉換才能傳送,因為國外的郵件服務器是無法辨認中文內碼的。中文碼在經過一些不支持中文內碼的傳遞主機時,依然會被截掉一位,造成文件支離破碎無法讀齲而經過編碼的中文郵件,收信人收到后將文件解碼還原,也需要有中文系統才能看所寫的中文信息。
二、常見的三種編碼標準
●UU編碼(Unix-to-Unixencoding)
uuencode和uudecode原來是unix系統中使用的編碼和解碼程序,后來被改寫成為在DOS中亦可執行的程序。在早期傳送非ASCII碼的文件時,最常用的便是這種UU編碼方式。
使用的方法是:發郵件前,在DOS下先用uuencode.exe程序將原文件編碼成ASCII碼文件,然后將郵件發出。收信人收到郵件后,用uudecode.exe程序將文件還原。
基于Windows的類似程序有wincode和winzip等。
wincode的使用原理和DOS下的uuencode和uudecode沒什么兩樣,只是在Windows的界面下操作更為簡便。wincode除支持UU編碼外也支持MIME、Binhex等編碼格式,應用范圍頗為廣泛。
以上介紹的UU編碼并非只能編中文文字。任何你要寄送的文件包括exe等二進制文件都可以按照編碼→發送→收信方收信→解碼還原的步驟傳送。
●MIME標準(MultipurposeInte.netMailExtentions)
UU編碼解決了E-mail只能傳送ASCII文件的問題。但這種方式其實并不是很方便,因而又發展出一種新的編碼標準,其全名是MultipurposeInternetMailExtentions,一般譯作“多媒體郵件傳送模式”。顧名思義,它可以傳送多媒體文件,在一封電子郵件中附加各種格式文件一起送出。
MIME標準現已成為Internet電子郵件的主流。它的好處是以物件作為包裝方式,可將多種不同文件一起打包后傳送。發信人只要將要傳送的文件選好,它在傳送時即時編碼,收信人的軟件收到也是即時解碼還原,完全自動化,非常方便。當然先決條件是雙方的軟件都必須具有這種功能,要不然發信人很方便地把信送出去了,但收信人的軟件如果沒有這種功能,無法把它還原,看到的也就是一大堆亂碼了。使用這種方式,用戶根本不需要知道它是如何編碼/解碼的。即使只是用文字寫的信,一樣是打好包便寄出。如果是要寄多媒體文件,只要做選文件的動作,選完后寄出,其余的工作由電子郵件軟件自動完成。
由于MIME的方便性,愈來愈多的電子郵件軟件采用這種方式。(我們現在最常使用的電子郵件軟件Eudora、NetscapeMail、InternetMail等就是采用MIME方式,所以我們才能如此輕松地收發電子郵件。)MIME定義的是一種規格,也可以說是一種統稱。
其實能夠符合這種規格的編碼方式并不是單一的一種,只要符合這種MIME規格便可順利傳送。以貨運作為比喻,若貨運公司規定送交貨運的規格是1立方米大小的箱子便可托運,它并沒有限制一定要用木箱或是鐵皮箱,只要是1立方米大小,貨運公司就幫你送達。至于箱子里你是裝食品或是書本或是衣服或是混合著裝也沒有限定,也就是說,多種格式的文件可以一起寄送。
就上例而言,“1立方米大斜是貨運規格,也就是我們的MIME規格。木箱或鐵皮箱是編碼方式,現在我們就來看看你有哪些“箱子種類”可以選擇。MIME定義兩種編碼方式:Base64與QP(Quote-Printable)。QP的規則是對于資料中的7位無須重復編碼,僅將8位的數據轉成7位。QP編碼適用于非ASCII碼的文字內容,例如我們的中文文件。而Base64的編碼規則,是將整個文件重新編碼成7位,通常用于傳送二進制文件。編碼的方式不同會影響編碼之后的文件大校而具有MIME功能的E-mail軟件大都能自動判別你的郵件是采用何種編碼,然后自動選擇用QP或Base64來解碼。
QP編碼的方式,是將一個字節用兩個16進制數值表示,然后在前面加“=”。所以我們看到經過QP編碼后的文字通常是這個樣子:=A4j=AEa=A6n=A1I=A7=DA=AC0=B1=E7=A9s=A7g=A1A=AB=DC=B0=AA=B
Base64編碼后的文字通常是:pGquYaZuoUmn2qxPseepc6dnoUGr3LCqv70ms773t3ymYqa5plakaq5hptu如果你使用支持MIME標準的電子郵件軟件,那么在收發信件的過程中是看不到這些亂七八糟的字符的。但如果很不幸,收信人沒有這種支持MIME的軟件,他看到的東西就是上面那一大段符號了。不過別急,你仍然可以先將這份“天書”存檔,然后使用一些decode軟件把它翻譯回來。
●Binhex編碼
Binhex的編碼方式常用于Mac機器,在PC上是較少使用的一種編碼方式。一般PC上的電子郵件軟件,亦多數支持MIME的規格,很少有支持Binhex格式。在常用的電子郵件軟件中,唯Eudora具有這種功能,可直接解讀Binhex的編碼,如果你收到了這種由Binhex所編碼的郵件,而且你的mail軟件并不是Eudora或其他支持Binhex格式的軟件。那也得用一個解讀Binhex的程序解碼。有一個共享軟件Binhex3.exe具有這個功能,它在許多FTP站點都能找到。
在Windows下,你還可以用我們前面所介紹的wincode來解碼。本文介紹的UU編碼、MIME以及Binhex都可以用它來處理。但可惜的是,對于MIME,它只處理Base64的編碼。如果能再加上QP的功能,真的可以靠它走遍天下了。
在MIME幾乎已成標準規格的現在,用一套支持MIME的軟件來做收發E-mail的工作,這些編碼/解碼工作就會自動完成,不會給你帶來麻煩。
,
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/