郵件亂碼破解完全手冊(cè)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
隨著Internet的普及,在網(wǎng)上通過(guò)E-mail傳遞信息逐漸成為現(xiàn)代人生活的時(shí)尚,相信不久甚至還會(huì)成為一種生活的必需內(nèi)容。但我們?cè)诮邮针娮余]件的時(shí)候,不時(shí)會(huì)發(fā)現(xiàn)接收的郵件是些怪模怪樣的亂碼,根本無(wú)法閱讀。如果這些郵件的內(nèi)容并不很重要,可能還不會(huì)有太大影響,可是假如是些緊急事件的通知或是生意場(chǎng)上的公函,則很可能就會(huì)給你帶來(lái)不小的損失。遇到這種情況,你打算怎么辦呢?把郵件丟進(jìn)垃圾筒就當(dāng)沒(méi)收到,麻煩發(fā)信人再重發(fā)一次,還是自己找方法破譯? 我們知道,計(jì)算機(jī)以及很多計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議的制定都是建立在ASCII碼(美國(guó)國(guó)家標(biāo)準(zhǔn)信息交換碼,它是一種最基本的字符表示方法)基礎(chǔ)上的,但是隨著信息內(nèi)容的日益豐富,用ASCII碼表示計(jì)算機(jī)信息開(kāi)始暴露出很大的不足,這主要表現(xiàn)在表示多國(guó)文字、圖形、聲音等二進(jìn)制文件和信息壓縮、信息保密等諸多方面。因此,在ASCII碼和擴(kuò)展ASCII碼的基礎(chǔ)上,用一定的規(guī)則定義一些新的信息表達(dá)形式就形成了信息傳輸和處理中的另一類概念和事物,這就是“編碼”和“解碼”。當(dāng)信息編碼和解碼能夠統(tǒng)一的時(shí)候,信息無(wú)疑是可以交換和被理解的;反之,當(dāng)信息編碼和解碼不能夠得到統(tǒng)一的時(shí)候,信息就無(wú)法被用于交換和理解,于是就產(chǎn)生了所謂的“亂碼”。 既然亂碼的產(chǎn)生是由于信息編碼和解碼不能夠得到統(tǒng)一,那么解決亂碼的過(guò)程自然就是找到和編碼相統(tǒng)一的解碼方法,并對(duì)計(jì)算機(jī)軟件不能全自動(dòng)進(jìn)行正確解碼的信息進(jìn)行重新處理和解碼,最終使得所恢復(fù)的信息能被人們理解和交換,這就是所謂的“破解”。 可以說(shuō),常見(jiàn)的亂碼都有這樣一些共性:(1)和漢字或其他語(yǔ)種的文字有關(guān);(2)最常發(fā)生在電子郵件的傳輸和閱讀中;(3)和傳送二進(jìn)制文件有關(guān);(4)和信息加密解密、編碼解碼有關(guān)。而我們今天要討論的電子郵件亂碼的原因也正如前面所說(shuō),和相應(yīng)的郵件發(fā)送系統(tǒng)、電子郵件軟件以及操作系統(tǒng)平臺(tái)本身,即它們用來(lái)自動(dòng)識(shí)別和編碼解碼的協(xié)議規(guī)則,有著極為密切的關(guān)系。 本文以目前最常使用的電子郵件軟件Outlook Express和Foxmail為例(其它電子郵件軟件有所提及),盡可能給出常見(jiàn)亂碼的亂碼原因、亂碼現(xiàn)象、標(biāo)志格式和解決方案,并為你提供一套經(jīng)典的破解流程作為參考,只是希望對(duì)你破解郵件亂碼DIY能有些許幫助。 一、亂碼產(chǎn)生之來(lái)龍去脈篇 (一)郵件亂碼產(chǎn)生的原因 事實(shí)上造成郵件亂碼的具體原因是很多的,但最為常見(jiàn)的不外乎有三種情況: 1.傳輸機(jī)制不同 由于Internet上的某些郵件服務(wù)器(國(guó)外居多)不支持8位(非標(biāo)準(zhǔn)ASCII碼格式)的中文郵件傳輸,所以在它們之間傳輸郵件就會(huì)產(chǎn)生亂碼。具體來(lái)講,這是因?yàn)镮nternet郵件協(xié)議是在1982年定義的,當(dāng)時(shí)的郵件基本上只由英語(yǔ)文本組成,而沒(méi)有其它文件格式,因此當(dāng)時(shí)定義的郵件協(xié)議普遍只支持簡(jiǎn)單的ASCII碼文本(對(duì)DOS、Windows及Unix操作系統(tǒng)來(lái)說(shuō),所有英文字母及符號(hào)都是用ASCII碼來(lái)表示的,而ASCII碼只用到每個(gè)字節(jié)8位中的前7位)。這樣,為了支持國(guó)際上流行的郵件協(xié)議,Internet上不少郵件系統(tǒng)相應(yīng)只支持7位的ASCII碼字符傳輸方式在當(dāng)時(shí)看來(lái)也就順理成章。但非常不巧的是,由于漢字的內(nèi)碼是8位的(一個(gè)漢字是用兩個(gè)擴(kuò)展ASCII碼表示的),所以當(dāng)在電子郵件系統(tǒng)之間傳送中文信息時(shí),如果沒(méi)有經(jīng)過(guò)那些只支持7位的郵件系統(tǒng)(比如在國(guó)內(nèi)的郵件系統(tǒng)間傳輸),自然可以正確的識(shí)別中文;但如果恰好經(jīng)過(guò)了那些只支持7位字符的郵件系統(tǒng)(即使只有一臺(tái)這樣不支持8位傳輸條件的主機(jī),中文郵件都可能被破壞),它們會(huì)硬把8位數(shù)據(jù)當(dāng)作7位來(lái)處理,將漢字內(nèi)碼第8位的1全部變?yōu)?,這當(dāng)然就使郵件內(nèi)容立刻變得面目全非起來(lái)。 除了中文雙字節(jié)郵件外,如果通過(guò)E-mail傳送一些非ASCII碼格式的文件(如.jpg、.exe、.zip)也會(huì)由于主機(jī)無(wú)法處理,而把信件中的每個(gè)字符的第8位都濾掉(即截去第8位),從而使信息和原始信息截然不同,造成郵件的完全損壞。這樣的亂碼當(dāng)然就無(wú)法閱讀了。由于傳輸機(jī)制不同造成郵件亂碼的現(xiàn)象是郵件亂碼產(chǎn)生的主要原因之一。 2.郵件編碼不同 為了解決傳輸機(jī)制不同造成的郵件亂碼,現(xiàn)在國(guó)際上普遍在電子郵件中采用各種郵件編碼方式,即將8位的文件格式預(yù)先按照一定的規(guī)則進(jìn)行編碼,以使它可以完好地通過(guò)只支持7位字符的郵件傳輸系統(tǒng)。通過(guò)對(duì)郵件進(jìn)行7位編碼再進(jìn)行傳輸和解碼可以一定程度的解決截位亂碼的現(xiàn)象。 為了能既克服傳輸機(jī)制不同造成的中文或非ASCII碼格式傳輸錯(cuò)誤,又不違背當(dāng)初的協(xié)議標(biāo)準(zhǔn),現(xiàn)在普遍采用的編碼方法是在郵件信息中轉(zhuǎn)換要傳遞的二進(jìn)制數(shù)據(jù)。我們把二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為文本數(shù)據(jù)稱作編碼(encode),反之則稱為解碼(decode)。但問(wèn)題是由于目前的編碼標(biāo)準(zhǔn)有很多,如UU、MIME、BINHEX編碼等等,如果收發(fā)雙方都使用同一種編碼/解碼方式,那郵件傳送自然不會(huì)有任何的問(wèn)題,然而,如果發(fā)送方采用一種方式,而接受方不能正確的識(shí)別出這種編碼方法,無(wú)疑就會(huì)出現(xiàn)亂碼。此外,有的郵件在傳輸過(guò)程中還可能被郵件系統(tǒng)進(jìn)行過(guò)特別的處理,當(dāng)然也可能對(duì)數(shù)據(jù)進(jìn)行了某種特別的編碼,但我們?cè)诮邮盏臅r(shí)候怎么能自動(dòng)的知道它到底經(jīng)過(guò)了哪些處理呢?這樣的話,由于郵件編碼不同造成亂碼現(xiàn)象看來(lái)也就不足為奇了。 需要說(shuō)明的是,由于在我國(guó)大陸地區(qū),國(guó)標(biāo)碼GB2312碼是通用的的簡(jiǎn)體中文內(nèi)碼,所以國(guó)內(nèi)通行的絕大多數(shù)郵件系統(tǒng)都能夠完全支持GB(國(guó)標(biāo)碼)內(nèi)碼的郵件,故而在國(guó)內(nèi)郵件系統(tǒng)內(nèi)傳輸電子郵件可以直接傳送而不需要再進(jìn)行任何編碼。 3.電子郵件軟件或操作系統(tǒng)不同 一般情況下,各種電子郵件軟件的默認(rèn)設(shè)置是不相同的,除此之外,收件人和發(fā)件人在電子郵件軟件的自定義中的設(shè)定肯定也不盡相同,這無(wú)形中就為郵件亂碼的產(chǎn)生創(chuàng)造了條件。如果發(fā)送方用某種編碼方式發(fā)送了郵件,而接收方所持有的電子郵件軟件對(duì)編碼的設(shè)置與郵件編碼不同,這樣極有可能發(fā)生的情況是:電子郵件軟件在收到編碼過(guò)的信件后不能“自動(dòng)”識(shí)別其編碼方式,從而造成在查看信件的內(nèi)容時(shí)出現(xiàn)所謂的亂碼,我們自然無(wú)法閱讀。此外,假如接收方所持有的電子郵件軟件沒(méi)有對(duì)應(yīng)的解碼功能,或者收發(fā)雙方用的是兩種支持不同編碼的郵件軟件,也同樣可能造成無(wú)法正常閱讀的錯(cuò)誤。還有一種情況是,發(fā)送方從其他系統(tǒng)中轉(zhuǎn)發(fā)了編碼過(guò)的郵件內(nèi)容給接收方,但接收的電子郵件軟件只能將原編碼過(guò)的內(nèi)容原封不動(dòng)的顯示出來(lái),而不能繼續(xù)將這種“亂碼”再進(jìn)一步的智能轉(zhuǎn)換為我們能閱讀的文字。 與電子郵件軟件的影響相似,由于各個(gè)國(guó)家、各個(gè)地區(qū)可能使用不同的操作系統(tǒng)(包括同一種操作系統(tǒng)的高低級(jí)版本、中英文版本),往往會(huì)在閱讀郵件(還有網(wǎng)頁(yè))時(shí)看到所謂的“亂碼”。如對(duì)于不同的漢字編碼,中國(guó)大陸用GB碼、中國(guó)臺(tái)灣用Big5碼和HZ碼、港澳特區(qū)有用GB碼,也有用Big5碼的,由于操作系統(tǒng)漢字內(nèi)碼的差異,在收發(fā)郵件時(shí)遭遇到亂碼也就不算奇怪了。 (二)E-mail中常見(jiàn)的編碼標(biāo)準(zhǔn) 如上面我們所談到的那樣,現(xiàn)在傳送電子郵件的關(guān)鍵在于編碼。只有經(jīng)過(guò)編碼,中文或非ASCII碼格式的郵件才能正確通過(guò)Internet上那些不支持8位編碼的郵件系統(tǒng);只有電子郵件軟件都完全支持,而且能正確識(shí)別編碼的類別,電子郵件的內(nèi)容才能為我們所閱讀和理解。那么,在電子郵件系統(tǒng)中究竟有哪些編碼標(biāo)準(zhǔn)呢?目前在E-mail中一般常用的編碼標(biāo)準(zhǔn)有UU、MIME和BINHEX編碼三種,其中MIME編碼是目前應(yīng)用最廣泛的編碼。下面我們就來(lái)詳細(xì)了解一下這幾種編碼: 1.UU編碼(Unix-to-Unix encoding) 這是郵件傳輸早期傳送非ASCII碼文件時(shí)最常使用的編碼方式,它主要使用在Unix環(huán)境下(郵件系統(tǒng)大多都建立在Unix操作系統(tǒng)上),但目前使用者已經(jīng)越來(lái)越少。UU編碼實(shí)際上由Uuencode和Uudecode兩部分組成,它們分別是Unix系統(tǒng)下的UU編碼和解碼程序,但其內(nèi)部所用算法卻是MIME編碼中Base64編碼的算法,后來(lái)被改寫(xiě)成為在DOS下運(yùn)行的可執(zhí)行程序。 : |8 I& _, e1 f) SUU編碼傳輸郵件的原理是:在進(jìn)行郵件發(fā)送前,先在DOS方式下用Uuencode.exe程序?qū)⒃募幋a成ASCII碼文件,然后再進(jìn)行發(fā)送,而收件人在接到文件后只需用Uudecode.exe程序?qū)⑽募€原即可。此外,UU編碼并非只能對(duì)中文郵件進(jìn)行編碼,只要你寄出的文件包括.gif、.jpg、.exe、.zip等二進(jìn)制文件,它都能按照編碼、發(fā)送、收信、解碼還原的步驟來(lái)予以傳送。這種編碼方法現(xiàn)在雖已經(jīng)不很常用了,但Outlook Express、Foxmail等絕大多數(shù)電子郵件軟件都支持它。 需要指出的是,UU編碼是DOS系統(tǒng)下的編解碼程序,在Windows系統(tǒng)中與之對(duì)應(yīng)的編解碼程序是Wincode(Winzip也采用了相似的原理)。事實(shí)上,Wincode的使用原理同DOS下的Uuencode和Uudecode相同,只不過(guò)它是利用了Windows的界面,從而使相應(yīng)的操作方式更為簡(jiǎn)便和靈活。值得注意的是,Wincode程序除了支持UU編碼外,還支持MIME、BINHEX等多種編碼格式,故而應(yīng)用范圍相當(dāng)廣泛。 2.MIME編碼(Multipurpose Internet Mail Extentions) 雖然UU編碼也能解決E-mail傳送中文或非ASCII碼文件的問(wèn)題,但它的編解碼方式在現(xiàn)在看來(lái)非常不方便,這就促使了MIME編碼標(biāo)準(zhǔn)的產(chǎn)生。Mimencode最早被稱為Mmencode,之所以提出用Mimencode代替Uuencode,是因?yàn)閁uencode編碼使用的一些字符在一些郵件網(wǎng)關(guān)(特別是那些轉(zhuǎn)換ASCII碼和EBCDIC碼的網(wǎng)關(guān))中會(huì)造成傳輸障礙。另外,還有一些電子郵件軟件不能對(duì)所有Uuencode碼的算法進(jìn)行正確解碼而導(dǎo)致郵件的閱讀困難,因此MIME編碼就被設(shè)計(jì)用來(lái)替代Uuencode編碼,但歷史的結(jié)果是這些編碼協(xié)議得到了共存。 MIME編碼一般被譯作“多媒體郵件傳送模式”,它是可以傳送多媒體文件,并在一封電子郵件中附加各種格式文件一起發(fā)送的編碼標(biāo)準(zhǔn)。我們現(xiàn)在最常使用的電子郵件軟件Outlook Express、Eudora、Foxmail和一些網(wǎng)上在線郵局如163、263等都是采用MIME編碼方式的,所以我們得以非常輕松的收發(fā)電子郵件。 由于MIME定義的是一種編碼規(guī)格,或者可以說(shuō)只是一類編碼的統(tǒng)稱,所以能夠符合MIME標(biāo)準(zhǔn)的編碼方式并非只有一種。事實(shí)上只要符合MIME規(guī)格的編碼方式都能順利的傳送郵件。目前在MIME編碼標(biāo)準(zhǔn)下公認(rèn)的兩種編碼方式分別是Base64編碼和QP(Quote-Printable)編碼。另外,Internet上還有幾種種編碼是HZ編碼、UTF-7編碼和UTF-8編碼。 (1)Base64編碼 Base64的編碼規(guī)則是將整個(gè)文件重新編碼成7位以適用于傳送二進(jìn)制文件。具體來(lái)說(shuō)是將字符流順序放入一個(gè)24位的緩沖區(qū)(缺字符的地方就補(bǔ)零),然后再將緩沖區(qū)截?cái)喑蔀?個(gè)部分(高位在前),每個(gè)部分6位,并用下面的64個(gè)字符重新表示:“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”。如果輸入只有一個(gè)或兩個(gè)字節(jié),那么輸出將用等號(hào)“=”補(bǔ)足,這樣的編碼方式可以有效隔斷附加信息對(duì)編碼造成的混亂。這就是Base64編碼。 (2)QP(Quote-Printable)編碼 QP編碼的規(guī)則是,對(duì)于資料中的7位字符不作重新編碼,而是僅將8位的數(shù)據(jù)轉(zhuǎn)成7位即可。我們可以看到,QP編碼是字符對(duì)應(yīng)的編碼,每個(gè)未編碼的二進(jìn)制字符都會(huì)被編碼成3個(gè)字符,即一個(gè)等號(hào)加上兩個(gè)該字符的16進(jìn)制值,如“=A8”,但這樣的編碼數(shù)為1:3,所以編碼效率相對(duì)于其它編碼方式而言相當(dāng)?shù)?。但不可否認(rèn)的是,這種編碼方法非常簡(jiǎn)單,特別適合那些數(shù)據(jù)大多數(shù)是7位的ASCII碼文本、偶爾插入8位字母的情況,但遺憾的是對(duì)漢字編碼效果不夠好,因?yàn)槊總€(gè)雙字節(jié)漢字經(jīng)過(guò)編碼后會(huì)變成6個(gè)字節(jié)。 (3)HZ編碼 HZ編碼也是一種Internet上常見(jiàn)的編碼方式,它的編碼規(guī)則是只對(duì)高位為1的字符(如漢字的雙字節(jié)內(nèi)碼)進(jìn)行編碼。具體方法是將最高位屏蔽,只保留低7位,并將經(jīng)過(guò)變換后的字符部分用符號(hào)~{和~}括起來(lái),當(dāng)解碼的時(shí)候只需將括號(hào)對(duì)里面的那部分高位重置為1就可以正確的加以還原了。 需要特別指出的是,MIME編碼標(biāo)準(zhǔn)如今已成為Internet電子郵件的主流編碼標(biāo)準(zhǔn)。它的好處顯而易見(jiàn):我們可以物件作為包裝方式,然后將多種不同文件一起打包后傳送。發(fā)信人只要將欲發(fā)送的文件選定好,MIME編碼就會(huì)在傳送時(shí)即時(shí)編碼,待收信人收取郵件后同樣也能即時(shí)解碼還原這些文件。可以看得出來(lái),這種全部由電子郵件軟件自動(dòng)完成的傳送方式較UU編碼方式來(lái)說(shuō),實(shí)在是方便不少。當(dāng)然,這種郵件傳送方式成功的先決條件是雙方的郵件軟件都必須支持MIME編碼功能,要不然發(fā)信人很方便的把信送出去了,但收信人的軟件卻沒(méi)有這種功能而無(wú)法把它還原,他看到的自然就是一大堆亂碼了。要知道,使用這種方式用戶根本不需要知道它是如何進(jìn)行編碼解碼的,不管是用中文寫(xiě)信,還是寄多媒體文件,只要選好文件,選完后寄出,其余的工作可全部由電子郵件軟件自動(dòng)完成。 由于MIME編碼的這種便利性、可靠性,現(xiàn)在越來(lái)越多的電子郵件(幾乎所有)都采用了這種編碼方式,像我們國(guó)內(nèi)用戶最常使用的電子郵件軟件Outlook Express、FoxMail、Eudora、The Bat!、Netscape Mail和Internet Mail等都支持MIME編碼標(biāo)準(zhǔn)。一般來(lái)說(shuō),MIME編碼中具體方式的選擇也會(huì)影響編碼之后郵件文件的大小,但具有MIME編碼功能的E-mail軟件大都能自動(dòng)判別發(fā)送過(guò)來(lái)的郵件是采用何種MIME編碼,然后自動(dòng)選擇是用Base64還是用QP來(lái)解碼。當(dāng)然,即使是正確的MIME編碼也可能因?yàn)猷]件文本格式的不規(guī)范而不能得以正確解碼,這個(gè)時(shí)候,我們從E-mail軟件或Hotmail里面得到的Base64編碼或QP編碼就可能成為亂碼,這也是MIME編碼產(chǎn)生亂碼的主要原因之一。 3.BINHEX編碼 由于BINHEX的編碼方式主要用于Mac機(jī),PC機(jī)上很少使用,所以一般PC機(jī)上的電子郵件軟件多數(shù)支持MIME編碼標(biāo)準(zhǔn)而很少支持BINHEX格式的。在我們常用的電子郵件軟件中,只有Eudora具有這種功能可直接解讀BINHEX編碼。 4.其它編碼 這類編碼主要指日文Shift-JIS、日文Shift-EUC、韓文KSC、繁體中文Big5等語(yǔ)言內(nèi)碼,本文主要針對(duì)繁體中文Big5碼而言。我們知道,由于它們是不同語(yǔ)言環(huán)境下的不同語(yǔ)言內(nèi)碼,在通過(guò)電子郵件傳遞的過(guò)程中就難免不出現(xiàn)亂碼,因此這里將它們歸為email中一類比較特別的編碼。 特別提示:對(duì)于上面提到的四類編碼,最新的Foxmail 3.1版支持Uuencode和MIME兩種編碼,但MIME編碼只支持8位(8bit)編碼方式(也有稱作UTF-8編碼的),另外它還支持us-ascii、ISO-8859-1、簡(jiǎn)體中文GB2312、日文Shift-JIS、韓文KSC、繁體中文Big5等多種字符集??偟膩?lái)說(shuō),它比較適合以純文本方式傳送正文。而Outlook Express 5則支持Uuencode編碼和MIME中的Base64以及QP兩種編碼方式以及UTF-7、UTF-8編碼和多國(guó)文字字符集,除此之外它還支持郵件正文以HTML方式傳送,這就是我們用Outlook Express能看到有著漂亮背景的郵件的原因。另外,我們上面提到的Windows下的Wincode解碼程序也能支持Uuencode編碼、MIME編碼以及Binhex編碼,但非常遺憾的是,對(duì)于MIME編碼,Wincode只能處理Base64的編碼,而沒(méi)有QP編碼的功能,實(shí)在是有些美中不足。 二、亂碼現(xiàn)形之真相大白篇 在以下內(nèi)容中,我們將下面這段話作為所有亂碼對(duì)應(yīng)的簡(jiǎn)體中文,并存為lm.txt文本,用來(lái)分析下面九類亂碼的特征與形式: 在人類歷史上,從來(lái)沒(méi)有一項(xiàng)技術(shù)及其應(yīng)用像互聯(lián)網(wǎng)一樣發(fā)展那么快,對(duì)人們的工作、生活、消費(fèi)和交往方式影響那么大,并且,隨著高度信息化的網(wǎng)絡(luò)社會(huì)的到來(lái),人們?cè)谏a(chǎn)和生活方式、觀念和意識(shí)等方面也必然會(huì)發(fā)生巨大的變化。 1.Uuencode“亂碼” 由于Uuencode編碼的內(nèi)部所用算法是Base64編碼的算法,所以它的格式與Base64編碼格式非常相似,差別僅僅在于“信頭”部分不同。 Uuencode“亂碼”的大體格式為: begin 666 lm.txt 2NLV]N\WYM[W*O=.PS^S$Q\.T` end 我們可以看到Uuencode“亂碼”的主要特征是:編碼以“begin xxx”開(kāi)頭,后面緊接著編碼之前原始文件的名稱,接著是已經(jīng)用Uuencode編碼的郵件內(nèi)容,在亂碼內(nèi)容的后面,即最后一行為“end”。此外,亂碼內(nèi)容基本上除了最后兩行外每行都是以英文字母“M”開(kāi)頭。上面那段話中,“begin”至“end”之間的內(nèi)容即為“在人類歷史上,從來(lái)沒(méi)有一項(xiàng)技術(shù)及...”這段話的Uuedncode編碼。 如果我們所用的電子郵件軟件不支持Uuencode解碼,那么我們看到的就是這些Uuencode“亂碼”。 2.Base64 encode“亂碼” Base64是MIME標(biāo)準(zhǔn)編碼之一,它的編碼方式是將4個(gè)字節(jié)(8位)用3個(gè)字節(jié)(6位)表示,由于編碼后的內(nèi)容是6位的,因此可以避免第8位被截掉。一般以附件發(fā)出的各種文件都會(huì)使用這種編碼,其內(nèi)容往往是一大堆雜亂無(wú)章但都可以正常顯示的ASCII碼字符(其大小被限定在0-63之間, 分別用'A'-'Z'、'a'-'z'、'0'-'9'、'+'和'/'組成),同時(shí)郵件頭上有“Content-Transfer-Encoding: base64”字樣。 Base64 encode“亂碼”的大體格式為: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 ICAgINTayMvA4MD6yrfJz6OstNPAtMO709DSu8/uvLzK9bywxuTTptPDz/G7 pcGqzfjSu9H5t6LVucTHw7S/7KOsttTIy8PHtcS5pNf3oaLJ+rvuoaLP+7fR us29u835t73KvdOwz+zEx8O0 我們可以看到Base64 encode的標(biāo)志頭中影響編碼的主要有三行(分號(hào)后的內(nèi)容算上一行):第一行表明是MIME編碼;第二行是Content-Type(內(nèi)容及類型),它說(shuō)明郵件的內(nèi)容類型是純文本、圖片還是壓縮文件或是超文本文檔(如text/plain表示普通文本文件、text/html表示超文本文件、application/x-zip-compressed表示zip壓縮文件),至于charset(字符集)則是用來(lái)說(shuō)明信中文字所用字符集的(通常有us-ascii、ISO-8859-1、GB2312等);第三行為Content-Transfer-Encoding(內(nèi)容傳輸編碼方式),表示編碼方式(如base64、qutoed Printable或7bit);有的郵件最后一行還有Content-Disposition字樣,它表示編碼文件的位置。對(duì)應(yīng)亂碼的內(nèi)容即是“在人類歷史上,從來(lái)沒(méi)有一項(xiàng)技術(shù)及...”這段話的Base64編碼。 如果我們所用的電子郵件軟件不支持Base64解碼,那么我們看到的就是這些Base64 encode“亂碼”。 3.QP encode“亂碼” QP encode也是MIME標(biāo)準(zhǔn)編碼之一,這種編碼的全名之所以叫作“Quoted-Printable Content-Transfer-Encoding”,是因?yàn)橛眠@種格式表示的信息其內(nèi)容主要都是ASCII碼字符集中可以打印的字符,因此名稱中含有printable。QP編碼的方式是將一個(gè)字節(jié)用兩個(gè)16進(jìn)制數(shù)值表示,然后在前面加“=”。 QP encode“亂碼”的大體格式為: Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable =D4=DA=C8=CB=C0=E0=C0=FA=CA=B7=C9=CF=A3=AC=B4=D3=C0=B4=C3=BB=D3=D0=D2=BB=CF=EE=BC=BC=CA=F5=BC=B0=C6=E4=D3=A6=D3=C3=CF=F1=BB=A5=C1=AA=CD=F8=D2=BB=D1=F9=B7=A2=D5=B9=C4=C7=C3=B4=BF=EC=A3=AC=B6=D4=C8=CB=C3=C7=B5=C4=B9=A4=D7=F7=A1=A2=C9=FA=BB=EE=A1=A2=CF=FB=B7=D1=BA=CD=BD=BB=CD=F9=B7=BD=CA=BD=D3=B0=CF=EC=C4=C7=C3=B4 我們可以看到,QP encode編碼將一個(gè)8位的字符表示為3個(gè)字符:一個(gè)“=”和兩個(gè)16進(jìn)制數(shù)。由于漢字編碼一般以兩個(gè)8位表示一個(gè)漢字,所以該編碼中表示一個(gè)漢字需要6個(gè)字符,如此段中的“=C8=CB”表示“人”字,“=C0=E0”表示“類”字。采用QP編碼方式的郵件很容易進(jìn)行判別,因?yàn)樗膬?nèi)容通常含有很多等號(hào)“=”,即使不看“信頭”我們也能非常容易的判斷它是否為QP encode編碼。在實(shí)際使用中,這種編碼還有一種變形,即用“%”號(hào)代替“=”號(hào)。 如果我們的電子郵件軟件不支持QP encode解碼,那么我們看到的就是這些QP encode“亂碼”。 4.UTF-7“亂碼” UTF-7“亂碼”的大體格式為: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-7" Content-Transfer-Encoding: 7bit +VyhOunx7U4ZT8k4K/wxOzmdlbKFnCU4AmHligGcvU8pRdl6UdShQz06SgFR/UU4AaDdT0VxVkKNOSF/r/wxb+U66Tux2hF3lT1wwAXUfbTswAW2IjTlUjE6kX4BluV8PX3FUzZCjTkhZJ/8MXnZOFP8Mlo93QJrYXqZP4WBvUxZ2hH9Rftx5Pk8adoRSMGdl/wxOuk7sVyh1H06nVIx1H207ZblfDzABicJf9VSMYQ+LxntJZbmXYk5fX8VxNk8aU9F1H13oWSd2hFPYUxYwAgA8- 我們可以看到這種亂碼除了具有QP亂碼的特征外,在開(kāi)頭和結(jié)尾分別有“+”和“-”符號(hào)。其信頭下的內(nèi)容即為“在人類歷史上,從來(lái)沒(méi)有一項(xiàng)技術(shù)及...”這段話的UTF-7編碼。 5.UTF-8“亂碼” UTF-8“亂碼”的大體格式為: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit 鍦ㄤ漢綾誨巻鍙蹭笂錛屼粠鏉ユ病鏈変竴欏規(guī)妧鏈強(qiáng)鍏跺簲鐢ㄥ儚浜掕仈緗戜竴鏍峰彂灞曢偅涔堝揩錛屽浜轟滑鐨勫伐浣溿 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit 保存為.eml的文本文件后用OutLook Express解碼查看,同樣需要單擊菜單欄“查看”/“編碼”/“Unicode(UTF-8)”。 方法3:將UTF-8“亂碼”郵件存為一個(gè).txt的文本文件,并改文件名后綴為.uue,然后使用Winzip來(lái)解碼。如果不行,還可在這個(gè)文本文件的郵件信頭處添加如下幾行: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit 要注意信頭中間不要空行,信頭和信體之間要留有一個(gè)空行(即在“Content-Transfer-Encoding: 8bit”下要留有一行空行)。這樣形成的文件名后綴依然要改為.uue,然后用Winzip打開(kāi),信體一般就會(huì)被正確解碼。 6.解決HZ“亂碼”的方法 方法1:將HZ“亂碼”郵件轉(zhuǎn)寄到自己的一個(gè)郵箱中,然后在OutLook Express中單擊菜單欄“查看”/“編碼”/“簡(jiǎn)體中文(HZ)”,即可看到解碼后的內(nèi)容。 方法2:將HZ“亂碼”郵件存為一個(gè).txt的文本文件,將文件名后綴改為.eml,由OutLook Express打開(kāi),并單擊菜單欄“查看”/“編碼”/“簡(jiǎn)體中文(HZ)”即可看到解碼的內(nèi)容。如果郵件使用的是附件方式,則可將附件保存后再用OutLook Express打開(kāi)查看。必要時(shí)也可以剪貼下來(lái),再加上如下信頭: Mime-Version: 1.0 Content-Type: text/plain; charset="hz-gb-2312" Content-Transfer-Encoding: quoted-printable 保存為.eml的文本文件后用OutLook Express解碼查看。 方法3:將HZ“亂碼”郵件存為一個(gè).txt的文本文件,并改文件名后綴為.uue,然后使用Winzip來(lái)解碼。如果不行,還可在這個(gè)文本文件的郵件信頭處添加如下幾行: Mime-Version: 1.0 Content-Type: text/plain; charset="hz-gb-2312" Content-Transfer-Encoding: quoted-printable 特別要注意的是信頭中間不要空行,信頭和信體之間卻要留有一個(gè)空行(即在“Content-Transfer-Encoding: quoted-printable ”下要留有一行空行)。這樣形成的文件名后綴依然要改為.uue,然后用Winzip打開(kāi),信體一般就會(huì)被正確解碼。 特別提示:通過(guò)對(duì)上面六類亂碼的解決,我們能夠看出對(duì)于UU編碼和MIME類的亂碼,一般可以有三種方法解決,第一種是通過(guò)轉(zhuǎn)寄亂碼郵件(有的情況下可以不用轉(zhuǎn)寄)后用支持該編碼的電子郵件軟件來(lái)接收、查看;第二種是將亂碼郵件存為以.eml為后綴名的文本文件,然后用OutLook Express解碼查看;第三種則是將亂碼郵件存為以.uue為后綴名的文本文件,然后用Winzip解碼查看,如果這兩種方式?jīng)]有能夠直接解碼成功,則一般可以通過(guò)添加信頭來(lái)解決。對(duì)于各種不同類型的亂碼,它們要添加的信頭僅僅在于字符集charset和內(nèi)容傳輸編碼方式Content-Transfer-Encoding有區(qū)別。另外,對(duì)于Uuencode編碼和Base64亂碼,還有第四種方法,就是用Windows下的Wincode程序來(lái)解碼閱讀。 #1 7.解決半個(gè)漢字“亂碼”的方法 對(duì)于半個(gè)漢字亂碼,只要將“亂碼”郵件存為一個(gè).txt文本文件,然后使用以字符為單位的編輯軟件,將“亂碼”行的首字符刪除,后面的部分就會(huì)和相鄰的“亂碼”重新組合成可識(shí)別的漢字。這樣雖然會(huì)丟失前面一個(gè)(或幾個(gè))漢字,但能挽救、還原大部分漢字,有時(shí)候就足夠猜測(cè)出郵件的原意了。 #1 8.解決Big5碼和其它(如其它語(yǔ)言內(nèi)碼)“亂碼”的方法 對(duì)于這些亂碼郵件,除了可以在Outlook Express中單擊菜單欄“查看”/“編碼”選項(xiàng),并選中“簡(jiǎn)體中文(GB2312)”編碼方式查看外,還可以用一些支持多種編碼的中文系統(tǒng),如中文之星、Richwin、南極星等轉(zhuǎn)換平臺(tái),并在其中選擇GB2312碼,一般就可以正常顯示郵件為簡(jiǎn)體中文了。 #1 9.解決BINHEX“亂碼”的方法 這里還想對(duì)BINHEX“亂碼”作一不完全的解法介紹,雖然它極為少見(jiàn),但如果你不幸碰上,還是可以用下面的方法試一試: 方法1:對(duì)于由BINHEX編碼產(chǎn)生的亂碼郵件,用Eudora來(lái)查看它。 方法2:用一個(gè)專門解讀BINHEX編碼的程序Binhex3.exe(共享軟件,在許多FTP站點(diǎn)都能找到)來(lái)打開(kāi)閱讀。 方法3:將Base64 encode“亂碼”郵件存為一個(gè).txt的文本文件,然后在Windows下用Wincode程序解碼。 #1 四、亂碼轉(zhuǎn)換之簡(jiǎn)單裝備篇 #1 1.亂碼察看器(CodeView) 版本:2.50 軟件大小:293KB 發(fā)布日期:2000/8 軟件類型:免費(fèi)軟件 使用平臺(tái):Windows95/98/ME/NT/2000 下載地點(diǎn):http://topsoft.163.com/software/download.php?id=3597 功能等級(jí):★★★★ 亂碼察看器,顧名思義就是用來(lái)察看各種亂碼的一個(gè)小工具軟件。它目前支持Uuencode編碼、Base64編碼、Quoted-Printable編碼和HZ編碼四種單一形式的編碼和解碼以及Base64、Quoted-Printable和HZ編碼三種的混合形式的亂碼察看。除此之外,還提供了對(duì)Big5碼的支持,可以在Big5碼和GB碼之間自由轉(zhuǎn)換(也可以讓程序自動(dòng)識(shí)別并將Big5碼轉(zhuǎn)換成GB碼),所以應(yīng)該算是同類軟件中功能較為齊全的軟件了(特別是可以在Win2000下使用)。 亂碼察看器的界面不算很漂亮(如^53200027a^1),但操作起來(lái)很簡(jiǎn)單,一般有兩種使用方法:一種是在有亂碼的窗口中直接按下單鍵解碼熱鍵(默認(rèn)為F7),此時(shí)如果窗口中的亂碼能被識(shí)別,就會(huì)出現(xiàn)一個(gè)窗口覆蓋掉當(dāng)前的亂碼窗口,我們可以直接在這個(gè)窗口中閱解碼后的內(nèi)容。作者建議你在大多數(shù)情況下都使用這種方式;第二種方法是將亂碼內(nèi)容通過(guò)剪貼板復(fù)制到亂碼察看器的源窗口中,然后手工嘗試用不同的解碼方式進(jìn)行解碼,可以看到這種解碼方法將提供給你更多的選擇自由,并且可以使用一些在單鍵解碼中無(wú)法實(shí)現(xiàn)的解碼方式,如通過(guò)“其他方式解碼”解決由于字節(jié)高位被屏蔽而形成的死亂碼和通過(guò)“UUCode”解開(kāi)Uuencode解碼等。對(duì)于一些單鍵解碼無(wú)法解決的亂碼問(wèn)題我們不妨使用此方式試試。 亂碼察看器還有一個(gè)特色是提供了“剪貼板實(shí)時(shí)監(jiān)視”、“混合亂碼識(shí)別”和“智能彈出”功能(智能彈出功能采用混合編碼的識(shí)別方法)。但是由于亂碼的多樣性,它識(shí)別混合編碼的成功率并不是很高,甚至經(jīng)常會(huì)出現(xiàn)一些原本正常的內(nèi)容被識(shí)別錯(cuò)誤的情況,這時(shí)你不妨將單一的亂碼復(fù)制到剪貼板里(只復(fù)制亂碼部分,而不要包含正常的文字),或者采用在亂碼察看器中手動(dòng)解碼的方法來(lái)試試。另外,如果一些正常文本復(fù)制到剪貼板后,亂碼察看器也會(huì)將它誤識(shí)為亂碼而自動(dòng)彈出,這時(shí)建議你將其設(shè)置為“不要自動(dòng)彈出”,可以避免一些不必要的麻煩。 總的說(shuō)來(lái),這款小軟件對(duì)于解決常見(jiàn)的亂碼還是比較有效的,特別是對(duì)于那些電腦初學(xué)者來(lái)說(shuō)相當(dāng)容易和輕松,可以省去不少的麻煩。它是綠色軟件,無(wú)需安裝,只要任意將其解壓到一個(gè)目錄中即可運(yùn)行。 #1 2.郵件解碼器(Mail Decoder) 版本:1.0 軟件大?。?86KB 發(fā)布日期:2000/6 軟件類型:免費(fèi)軟件 使用平臺(tái):Windows95/98/ME/NT/2000 下載地點(diǎn):http://netsurfe.e-lists.com.cn/download/decoder.exe 功能等級(jí):★★★★☆ 郵件解碼器也是一個(gè)類似于亂碼察看器的小軟件,但它能支持更多的編碼格式,因此解亂碼的成功率更高。它目前支持Base64編碼、Quoted-Printable編碼、HZ編碼、UTF-7編碼(->GB碼、->Big5碼)、UTF-8編碼(->GB碼、->Big5碼),此外還支持GB碼與 Big5碼的相互轉(zhuǎn)換。最難得的是此軟件還提供了一個(gè)非常實(shí)用的功能——“7位-8位”,它使你能手動(dòng)解除因部分郵件服務(wù)器不支持8位碼而造成的郵件信息丟失的編碼。 郵件解碼器這個(gè)軟件也不以界面見(jiàn)長(zhǎng),一眼看上去普普通通(如^53200027b^2),但使用起來(lái)一樣非常簡(jiǎn)單。該解碼器的內(nèi)部提供了中文GB、BIG5和英文三種界面,如果你發(fā)現(xiàn)你的郵件解碼器不是中文的,你可以單擊菜單欄上左起第五個(gè)菜單(英文是Configuration),選中其中唯一的選項(xiàng),在跳出的窗口中選擇“中文界面(GB)”(如^53200027c^3),確定即可變?yōu)橹形?。在使用時(shí),一般來(lái)說(shuō),你可以直接將郵件亂碼文本拷貝到源文本框中,然后單擊“解碼”,找到對(duì)應(yīng)的編碼單擊即可解碼,此時(shí)你就可以直接在目標(biāo)文本框中看到郵件的廬山真面目了。另外,解碼的第二種方法允許你通過(guò)單擊“文件”/“打開(kāi)”調(diào)出你保存下來(lái)的亂碼郵件文本在郵件解碼器左欄中,然后同樣單擊“解碼”在右欄中顯示郵件。 除了上面所介紹的功能之外,你在郵件解碼器中還可以單擊“文件”/“解碼文件按”,將你的郵件亂碼文件保存為經(jīng)某種編碼解碼后的文本文件;可以單擊“文件”/“漢字內(nèi)碼轉(zhuǎn)換器”,在GB碼與Big5碼之間任意相互轉(zhuǎn)換(即使保存編碼后的文件也行)。至于這個(gè)軟件附加的其它一些功能,如提供郵件的刪除、添加標(biāo)志字符,換行等,操作起來(lái)也很簡(jiǎn)單,基本上沒(méi)有什么難度。 總的來(lái)說(shuō),郵件解碼器是個(gè)相當(dāng)實(shí)用的解除郵件亂碼的小工具,不僅操作簡(jiǎn)單,而且功能強(qiáng)大,能使大多數(shù)出現(xiàn)的亂碼郵件恢復(fù)本來(lái)面目。 #1 3.Zeal Decoder 版本:1.0 軟件大?。?K 發(fā)布日期:1998/8 軟件類型:免費(fèi)軟件 使用平臺(tái):DOS/Windows9X 下載地點(diǎn):http://www.nease.net/~zealsoft/zdecoder.zip 功能等級(jí):★★★ 與前面介紹的兩個(gè)軟件不同,Zeal Decoder這個(gè)程序不是為解除大多數(shù)郵件亂碼而設(shè)計(jì)的,而是專門針對(duì)一種編碼設(shè)計(jì)的,目前它只處理Quoted-Printable編碼的亂碼郵件。 這個(gè)小軟件個(gè)頭奇小,加上說(shuō)明文檔還只有8K,顯然不是windows下的程序。事實(shí)上它是一個(gè)DOS程序,但能在Windows下運(yùn)行。其使用方法是在DOS窗口中輸入命令,但不需要郵件信頭就可以解碼。它的命令行語(yǔ)法是這樣的: zdecode <infile> <outfile> [leading character]
如zdecode lm.txt lm.txt = 其中,infile表示輸入文件名,outfile表示輸出文件,leading character表示引導(dǎo)字符,它是可選項(xiàng),絕大多數(shù)QP編碼的亂碼郵件都可以使用“=”等號(hào)作為引導(dǎo)字符(這是默認(rèn)設(shè)置)。 如果某些QP編碼的亂碼郵件使用的引導(dǎo)字符不是“=”,而是“%”,則可以相應(yīng)改變。 #1 4.Hzdecoder 版本:1.4 軟件大?。?71K 發(fā)布日期:2000/8 軟件類型:免費(fèi)軟件 使用平臺(tái):Windows95/98/ME 下載地點(diǎn):http://www4.netease.com/~lianghe/hzdecode.zip 功能等級(jí):★★★ 這個(gè)小軟件也是一個(gè)功能單一的郵件解碼軟件,它只能針對(duì)HZ編碼的亂碼郵件解碼。如果你經(jīng)常收到一些HZ編碼的郵件(特別是在一些基于WEB方式的信箱中經(jīng)常會(huì)出現(xiàn)這種亂碼),則不妨試試它。 對(duì)于這個(gè)小軟件的使用,也是非常簡(jiǎn)單,你只需將亂碼的郵件粘貼到這個(gè)程序的編輯區(qū)它就可以自動(dòng)顯示出正常的中文來(lái)。除了解碼外,Hzdecoder還能進(jìn)行一些編碼,如Quoted-Printable編碼、Big5->GB碼、GB碼->Big5碼等。 #1 五、亂碼破解之流程篇 當(dāng)你收到一封亂碼郵件時(shí),第一步必須要做的是根據(jù)亂碼的特征判斷它到底屬于哪種編碼,如果能判斷出是哪種編碼,最簡(jiǎn)單的方法當(dāng)然是將亂碼郵件剪貼下來(lái),利用現(xiàn)成的亂碼郵件解碼軟件(如亂碼察看器或郵件解碼器)來(lái)解碼閱讀或利用中文之星、Richwin、南極星這樣的中文平臺(tái)轉(zhuǎn)換內(nèi)碼。但如果根據(jù)郵件的內(nèi)容你一時(shí)判別不出是哪種編碼,或者你沒(méi)有任何現(xiàn)成的解碼工具軟件,則你可以如此一步一步的做下去(以O(shè)utlook Express 5為例): 步驟1:更改OE5設(shè)置。 啟動(dòng)Outlook Express,單擊“工具”/“選項(xiàng)”命令,在出現(xiàn)的對(duì)話窗中單擊“閱讀”標(biāo)簽,再單擊“字體”按鈕,選擇“簡(jiǎn)體中文(GB2312)”。并接下來(lái)將它設(shè)置為默認(rèn)值,單擊“國(guó)際設(shè)置”按鈕,選中“為接收的所有的郵件使用默認(rèn)的編碼”,確定后退出。如此設(shè)置后,當(dāng)你再打開(kāi)郵件閱讀時(shí),通常就不會(huì)再出現(xiàn)亂碼了。 步驟2:編碼選項(xiàng)查看。 如果第一步?jīng)]能奏效,你可以在Outlook Express中選定亂碼郵件,然后單擊“查看”/“編碼”/“簡(jiǎn)體中文(GB2312)”或“其他”/“簡(jiǎn)體中文(HZ)”,看看郵件內(nèi)容是不是能破解。 步驟3:轉(zhuǎn)寄郵件后再收。 在第二步還不能奏效的情況下你可以將此郵件轉(zhuǎn)寄到你的另一個(gè)郵箱中,然后再用Outlook Express接收,有時(shí)即可順利解碼。當(dāng)然,也可以試著用不同的電子郵件軟件接收此郵件,看看是否能消除亂碼現(xiàn)象,因?yàn)椴煌碾娮余]件軟件對(duì)編碼的兼容能力還是有所不同的。 步驟4:改名為.eml后重解。 如果仍然顯示為亂碼,你可以將亂碼郵件存為一個(gè).txt的文本文件(如果是通過(guò)WEB頁(yè)收取的郵件,就將信體剪貼下來(lái)存為一個(gè).txt的文本文件),并改其后綴名為.eml,由Outlook Express來(lái)打開(kāi),這樣一般就可以自動(dòng)解碼了。 步驟5:添加信頭后重讀。 如果還不行,你可以接著在上面那個(gè).eml文件的最前面添加如下信頭: Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 特別要注意的是信頭中間不要空行,信頭和信體之間卻要留有一個(gè)空行(即在“Content-Transfer-Encoding: base64”下要留有一行空行)。另外,如果不是Base64亂碼,你需要判別它們是不是QP亂碼或UTF-7、UTF-8亂碼或HZ亂碼,并分別將base64替換成quoted-printable、7bit、7bit、quoted-printable(后三種亂碼還要將gb2312替換成utf-7、utf-8或hz-gb-2312)。完成保存后一般就可以用OutLook Express解碼查看了。 步驟6:利用Winzip解碼。 如問(wèn)題仍得不到解決,可以將亂碼郵件存為一個(gè).txt的文本文件,并改其后綴名為.uue,然后調(diào)用WinZip來(lái)對(duì)亂碼郵件進(jìn)行解碼。 步驟7:添加信頭再用Winzip解碼。 倘若解碼無(wú)效,可以像在.eml文件中添加信頭那樣在.uue文件中添加信頭,然后再用Winzip解碼,相信絕大多數(shù)郵件亂碼到這一步就會(huì)露出其“廬山真面目”了。 步驟8:字符重組。 對(duì)于利用上面步驟還不能正確解碼的亂碼郵件,你可以將其存為一個(gè).txt文本文件,然后使用任意以字符為單位的編輯軟件,將亂碼行的第一個(gè)字符刪除。看看后面的部分能不能和它相鄰的亂碼重新組成可識(shí)別的漢字。 步驟9:利用Wincode解碼。 如果到這里都不能搞定亂碼郵件,你只有借助Wincode了。將亂碼郵件存為一個(gè).txt的文本文件,然后在Windows下調(diào)用Wincode程序解碼(Wincode程序支持UU編碼、Base64編碼和BINHEX等編碼格式)。 步驟10:調(diào)用內(nèi)碼轉(zhuǎn)換平臺(tái)。 本來(lái)這個(gè)步驟應(yīng)該早早在你判斷出編碼類型后就決定做不做的,但如果開(kāi)始你判斷失誤,那么現(xiàn)在不妨回過(guò)頭來(lái)全面的做一遍。調(diào)出你所有的平臺(tái)轉(zhuǎn)換工具,嘗試盡可能全面的內(nèi)碼轉(zhuǎn)換,看看能不能“死馬當(dāng)活馬醫(yī)”! 如果以上步驟均不能奏效,則可以判斷收到的亂碼郵件是未經(jīng)過(guò)編碼而造成第8位字節(jié)被濾掉的亂碼郵件,一般來(lái)說(shuō),這只能通過(guò)編程來(lái)解決,但郵件解碼器(Mail Decoder)這個(gè)軟件中提供了“7位-8位”這個(gè)功能,所以如果你不擅長(zhǎng)編程就只好求助于它了。另外,可以再提醒你的是,在Outlook Express 5中,你可以在選中亂碼郵件后單擊右鍵,在出現(xiàn)的快捷菜單中選擇“屬性”項(xiàng),并在出現(xiàn)的對(duì)話框中單擊“詳細(xì)資料”標(biāo)簽,然后再單擊右下方的“郵件的源文件(M)”,此時(shí)你就會(huì)看到郵件亂碼的源文件。有時(shí)源文件就能顯示出你想要得到的所有信息,即使沒(méi)有的話,也能方便你將其存為.txt文本文件呀! 特別提示:郵件亂碼破解的一個(gè)關(guān)鍵點(diǎn)是判別亂碼的編碼類型,因?yàn)椴煌幋a的亂碼,在不同的平臺(tái)上有不同的解決方法,因此解碼前如果能查看到亂碼郵件的內(nèi)容(可以利用源文件),再根據(jù)其特征對(duì)郵件可能的編碼方式(Uuencode、Base64、QP或HZ等其它編碼方式)進(jìn)行判斷將能使我們的破解工作事半功倍。 #1 六、亂碼防范之日常措施篇 #1 1.選用大眾流行的電子郵件軟件 由于不同的電子郵件軟件支持的編碼有所不同,收件人和發(fā)件人自己定制的一些選項(xiàng)也各不相同,所以在收到編碼過(guò)的郵件后,系統(tǒng)不一定就能識(shí)別出郵件所用過(guò)的編碼方法。如果識(shí)別不出編碼方法,則系統(tǒng)自然無(wú)法自動(dòng)解碼。這樣當(dāng)你查看郵件內(nèi)容時(shí),就會(huì)出現(xiàn)所謂的亂碼而無(wú)法閱讀。選用大眾流行的電子郵件軟件(如OutLook Express、Foxmail、Eudora和The Bat!等)可以在一定程度上避免這種尷尬的出現(xiàn),因?yàn)檫@樣的郵件軟件一來(lái)用的人多,二來(lái)支持的協(xié)議一般來(lái)說(shuō)也較多,所以出現(xiàn)無(wú)法自動(dòng)解碼的幾率相對(duì)而言會(huì)小得多。除此之外,你還必須設(shè)置好你的電子郵件軟件,特別是其默認(rèn)的簡(jiǎn)體中文環(huán)境。現(xiàn)在有許多電子郵件軟件允許你選擇郵件的編碼解碼方式,你無(wú)論如何也要選擇MIME,因?yàn)檫@是目前使用最廣泛、支持率最高的協(xié)議。如果你的電子郵件軟件連它都不支持,你應(yīng)該考慮換一種軟件了。 #1 2.最好不使用電子郵件軟件特別的編輯功能 Outlook Express的郵件編輯器是個(gè)功能很強(qiáng)的HTML編輯器,你甚至可以編輯五顏六色、各種字體的電子郵件。然而,如果接收方不是也使用Outlook Express來(lái)接收郵件的話,可能就只能看到HTML源代碼,這對(duì)于電腦初學(xué)者也許就意味著是“亂碼”。不過(guò)也有解決的方法:在撰寫(xiě)郵件時(shí),選擇“格式”菜單下的“純文本”選項(xiàng)。如果要將發(fā)送格式的缺省值設(shè)置為“純文本”,那么在Outlook Express主窗口中,打開(kāi)菜單欄“工具”/“選項(xiàng)”,并在出現(xiàn)的選項(xiàng)設(shè)置對(duì)話框中單擊“發(fā)送”選項(xiàng)卡,將郵件發(fā)送格式設(shè)置為“純文本”。 #1 3.最好用記事本撰寫(xiě)郵件內(nèi)容后再插入郵件 對(duì)于特別重要的郵件,發(fā)信件前最好是先用記事本進(jìn)行錄入編輯,然后再利用菜單中的“插入文本中的文件”命令將所寫(xiě)內(nèi)容復(fù)制到電子郵件的內(nèi)容框中,這之后再發(fā)出,對(duì)方一般不會(huì)收到亂碼。 #1 4.編碼文件最好添加足夠的郵件“信頭” 如果你要發(fā)送特定編碼的郵件,最好添加足夠的郵件“信頭”信息,這樣能夠一定程度上保證郵件能夠被正確解碼。建議對(duì)Uuencode編碼用Uuencode encoding作信頭,對(duì)Base64編碼用Base64 encoding作信頭,對(duì)QP編碼用Printable encoding作信頭。具體信頭內(nèi)容見(jiàn)前面篇章所述。 #1 5.盡可能利用附件功能發(fā)送郵件和文件 一般電子郵件軟件的“附件”功能可以自動(dòng)對(duì)非標(biāo)準(zhǔn)ASCII碼格式的郵件文件自動(dòng)進(jìn)行Base64 方式編碼(僅對(duì)附件部分進(jìn)行編碼),然后再進(jìn)行發(fā)送。如果收信人的電子郵件軟件能夠區(qū)別郵件的這種編碼方式(目前絕大多數(shù)電子郵件軟件都支持MIME/Base64編碼),則可以自動(dòng)將郵件解碼,而不會(huì)再出現(xiàn)亂碼。因此強(qiáng)烈建議你采用這種方式發(fā)送中文郵件或非標(biāo)準(zhǔn)ASCII碼格式的文件。 #1 6.發(fā)送重要郵件時(shí)最好先發(fā)測(cè)試信 發(fā)送重要的郵件信息時(shí),為了確認(rèn)是否無(wú)須編碼即可發(fā)送正文(如果你不方便利用附件功能),你應(yīng)該先在正文中用中文給收件人發(fā)一封測(cè)試信,而且還應(yīng)確定收件人能否對(duì)郵件正文進(jìn)行解碼。如果發(fā)送已經(jīng)編碼的郵件,也最好添加足夠的“信頭”信息,以便收件人知道其所需的解碼方法。 #1 7.可以考慮將中文文件轉(zhuǎn)換為圖像文件隨附件發(fā)送 如果你向沒(méi)有安裝中文平臺(tái)的人發(fā)送中文電子郵件,則可以考慮將中文文件轉(zhuǎn)換為圖像文件并隨附件發(fā)送,這樣做的好處是可以讓收件方不用任何轉(zhuǎn)換平臺(tái)就能閱讀你的中文郵件,具體做法包括用掃描儀將信件和圖片制作成*.gif或*.jpg圖形文件,并放在附件里發(fā)送;用Word應(yīng)用程序或其他制圖軟件以在圖片上打字的方法將中文內(nèi)容轉(zhuǎn)化為圖像文件,放在附件里發(fā)送,這種方法還不需要掃描儀。 #1 8.電子郵件軟件最好統(tǒng)一定義為中文簡(jiǎn)體(GB2312)編碼 為了減少收信時(shí)出現(xiàn)亂碼的現(xiàn)象,建議大家在使用電子郵件軟件時(shí)統(tǒng)一都將字體的“國(guó)際設(shè)置”定義為“簡(jiǎn)體中文(GB2312)”。在中文版的Outlook Express或Outlook中,其缺省的設(shè)置都是中文簡(jiǎn)體(GB2312)編碼,無(wú)需更改。但如果你要手動(dòng)修改,也可以在Outlook Express中單擊菜單欄“工具”/“選項(xiàng)”選項(xiàng),選擇“閱讀”標(biāo)簽,并單擊“國(guó)際設(shè)置”按鈕,在其中選中“為接收所有郵件使用默認(rèn)編碼”。 #1 9.接收Uuencode編碼的郵件最好不要使用Eudora軟件 這是因?yàn)镋udora這個(gè)電子郵件軟件會(huì)將附件文件恢復(fù)成二進(jìn)制文件并存放在另一個(gè)目錄里。對(duì)于分成多塊傳送的Uuencode代碼,Eudora會(huì)將這些代碼的第一部分恢復(fù)成文件,而后面的就不管了(這顯然是不完整的)。這會(huì)妨礙你以后人工合并這些郵件。很多人使用The Bat!這種郵件軟件,它對(duì)附件的文件究竟是恢復(fù)到目錄中還是留在信體里會(huì)提供一個(gè)選項(xiàng)給你選擇,在這種情況下你也要特別注意正確作出選擇。 該文章在 2012/1/12 23:51:55 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |