狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

郵件亂碼破解完全手冊

admin
2012年1月12日 23:51 本文熱度 3331

隨著Internet的普及,在網上通過E-mail傳遞信息逐漸成為現代人生活的時尚,相信不久甚至還會成為一種生活的必需內容。但我們在接收電子郵件的時候,不時會發現接收的郵件是些怪模怪樣的亂碼,根本無法閱讀。如果這些郵件的內容并不很重要,可能還不會有太大影響,可是假如是些緊急事件的通知或是生意場上的公函,則很可能就會給你帶來不小的損失。遇到這種情況,你打算怎么辦呢?把郵件丟進垃圾筒就當沒收到,麻煩發信人再重發一次,還是自己找方法破譯?


我們知道,計算機以及很多計算機網絡協議的制定都是建立在ASCII碼(美國國家標準信息交換碼,它是一種最基本的字符表示方法)基礎上的,但是隨著信息內容的日益豐富,用ASCII碼表示計算機信息開始暴露出很大的不足,這主要表現在表示多國文字、圖形、聲音等二進制文件和信息壓縮、信息保密等諸多方面。因此,在ASCII碼和擴展ASCII碼的基礎上,用一定的規則定義一些新的信息表達形式就形成了信息傳輸和處理中的另一類概念和事物,這就是“編碼”和“解碼”。當信息編碼和解碼能夠統一的時候,信息無疑是可以交換和被理解的;反之,當信息編碼和解碼不能夠得到統一的時候,信息就無法被用于交換和理解,于是就產生了所謂的“亂碼”。


既然亂碼的產生是由于信息編碼和解碼不能夠得到統一,那么解決亂碼的過程自然就是找到和編碼相統一的解碼方法,并對計算機軟件不能全自動進行正確解碼的信息進行重新處理和解碼,最終使得所恢復的信息能被人們理解和交換,這就是所謂的“破解”。


可以說,常見的亂碼都有這樣一些共性:(1)和漢字或其他語種的文字有關;(2)最常發生在電子郵件的傳輸和閱讀中;(3)和傳送二進制文件有關;(4)和信息加密解密、編碼解碼有關。而我們今天要討論的電子郵件亂碼的原因也正如前面所說,和相應的郵件發送系統、電子郵件軟件以及操作系統平臺本身,即它們用來自動識別和編碼解碼的協議規則,有著極為密切的關系。


本文以目前最常使用的電子郵件軟件Outlook Express和Foxmail為例(其它電子郵件軟件有所提及),盡可能給出常見亂碼的亂碼原因、亂碼現象、標志格式和解決方案,并為你提供一套經典的破解流程作為參考,只是希望對你破解郵件亂碼DIY能有些許幫助。


一、亂碼產生之來龍去脈篇


 (一)郵件亂碼產生的原因


事實上造成郵件亂碼的具體原因是很多的,但最為常見的不外乎有三種情況:


1.傳輸機制不同

由于Internet上的某些郵件服務器(國外居多)不支持8位(非標準ASCII碼格式)的中文郵件傳輸,所以在它們之間傳輸郵件就會產生亂碼。

具體來講,這是因為Internet郵件協議是在1982年定義的,當時的郵件基本上只由英語文本組成,而沒有其它文件格式,因此當時定義的郵件協議普遍只支持簡單的ASCII碼文本(對DOS、Windows及Unix操作系統來說,所有英文字母及符號都是用ASCII碼來表示的,而ASCII碼只用到每個字節8位中的前7位)。這樣,為了支持國際上流行的郵件協議,Internet上不少郵件系統相應只支持7位的ASCII碼字符傳輸方式在當時看來也就順理成章。但非常不巧的是,由于漢字的內碼是8位的(一個漢字是用兩個擴展ASCII碼表示的),所以當在電子郵件系統之間傳送中文信息時,如果沒有經過那些只支持7位的郵件系統(比如在國內的郵件系統間傳輸),自然可以正確的識別中文;但如果恰好經過了那些只支持7位字符的郵件系統(即使只有一臺這樣不支持8位傳輸條件的主機,中文郵件都可能被破壞),它們會硬把8位數據當作7位來處理,將漢字內碼第8位的1全部變為0,這當然就使郵件內容立刻變得面目全非起來。


除了中文雙字節郵件外,如果通過E-mail傳送一些非ASCII碼格式的文件(如.jpg、.exe、.zip)也會由于主機無法處理,而把信件中的每個字符的第8位都濾掉(即截去第8位),從而使信息和原始信息截然不同,造成郵件的完全損壞。這樣的亂碼當然就無法閱讀了。由于傳輸機制不同造成郵件亂碼的現象是郵件亂碼產生的主要原因之一。


2.郵件編碼不同


為了解決傳輸機制不同造成的郵件亂碼,現在國際上普遍在電子郵件中采用各種郵件編碼方式,即將8位的文件格式預先按照一定的規則進行編碼,以使它可以完好地通過只支持7位字符的郵件傳輸系統。通過對郵件進行7位編碼再進行傳輸和解碼可以一定程度的解決截位亂碼的現象。


為了能既克服傳輸機制不同造成的中文或非ASCII碼格式傳輸錯誤,又不違背當初的協議標準,現在普遍采用的編碼方法是在郵件信息中轉換要傳遞的二進制數據。我們把二進制數據轉換為文本數據稱作編碼(encode),反之則稱為解碼(decode)。但問題是由于目前的編碼標準有很多,如UU、MIME、BINHEX編碼等等,如果收發雙方都使用同一種編碼/解碼方式,那郵件傳送自然不會有任何的問題,然而,如果發送方采用一種方式,而接受方不能正確的識別出這種編碼方法,無疑就會出現亂碼。此外,有的郵件在傳輸過程中還可能被郵件系統進行過特別的處理,當然也可能對數據進行了某種特別的編碼,但我們在接收的時候怎么能自動的知道它到底經過了哪些處理呢?這樣的話,由于郵件編碼不同造成亂碼現象看來也就不足為奇了。


需要說明的是,由于在我國大陸地區,國標碼GB2312碼是通用的的簡體中文內碼,所以國內通行的絕大多數郵件系統都能夠完全支持GB(國標碼)內碼的郵件,故而在國內郵件系統內傳輸電子郵件可以直接傳送而不需要再進行任何編碼。


3.電子郵件軟件或操作系統不同


  一般情況下,各種電子郵件軟件的默認設置是不相同的,除此之外,收件人和發件人在電子郵件軟件的自定義中的設定肯定也不盡相同,這無形中就為郵件亂碼的產生創造了條件。如果發送方用某種編碼方式發送了郵件,而接收方所持有的電子郵件軟件對編碼的設置與郵件編碼不同,這樣極有可能發生的情況是:電子郵件軟件在收到編碼過的信件后不能“自動”識別其編碼方式,從而造成在查看信件的內容時出現所謂的亂碼,我們自然無法閱讀。此外,假如接收方所持有的電子郵件軟件沒有對應的解碼功能,或者收發雙方用的是兩種支持不同編碼的郵件軟件,也同樣可能造成無法正常閱讀的錯誤。還有一種情況是,發送方從其他系統中轉發了編碼過的郵件內容給接收方,但接收的電子郵件軟件只能將原編碼過的內容原封不動的顯示出來,而不能繼續將這種“亂碼”再進一步的智能轉換為我們能閱讀的文字。


與電子郵件軟件的影響相似,由于各個國家、各個地區可能使用不同的操作系統(包括同一種操作系統的高低級版本、中英文版本),往往會在閱讀郵件(還有網頁)時看到所謂的“亂碼”。如對于不同的漢字編碼,中國大陸用GB碼、中國臺灣用Big5碼和HZ碼、港澳特區有用GB碼,也有用Big5碼的,由于操作系統漢字內碼的差異,在收發郵件時遭遇到亂碼也就不算奇怪了。


(二)E-mail中常見的編碼標準


如上面我們所談到的那樣,現在傳送電子郵件的關鍵在于編碼。只有經過編碼,中文或非ASCII碼格式的郵件才能正確通過Internet上那些不支持8位編碼的郵件系統;只有電子郵件軟件都完全支持,而且能正確識別編碼的類別,電子郵件的內容才能為我們所閱讀和理解。那么,在電子郵件系統中究竟有哪些編碼標準呢?目前在E-mail中一般常用的編碼標準有UU、MIME和BINHEX編碼三種,其中MIME編碼是目前應用最廣泛的編碼。下面我們就來詳細了解一下這幾種編碼:


1.UU編碼(Unix-to-Unix encoding)


  這是郵件傳輸早期傳送非ASCII碼文件時最常使用的編碼方式,它主要使用在Unix環境下(郵件系統大多都建立在Unix操作系統上),但目前使用者已經越來越少。UU編碼實際上由Uuencode和Uudecode兩部分組成,它們分別是Unix系統下的UU編碼和解碼程序,但其內部所用算法卻是MIME編碼中Base64編碼的算法,后來被改寫成為在DOS下運行的可執行程序。

: |8 I& _, e1 f) S

UU編碼傳輸郵件的原理是:在進行郵件發送前,先在DOS方式下用Uuencode.exe程序將原文件編碼成ASCII碼文件,然后再進行發送,而收件人在接到文件后只需用Uudecode.exe程序將文件還原即可。此外,UU編碼并非只能對中文郵件進行編碼,只要你寄出的文件包括.gif、.jpg、.exe、.zip等二進制文件,它都能按照編碼、發送、收信、解碼還原的步驟來予以傳送。這種編碼方法現在雖已經不很常用了,但Outlook Express、Foxmail等絕大多數電子郵件軟件都支持它。


需要指出的是,UU編碼是DOS系統下的編解碼程序,在Windows系統中與之對應的編解碼程序是Wincode(Winzip也采用了相似的原理)。事實上,Wincode的使用原理同DOS下的Uuencode和Uudecode相同,只不過它是利用了Windows的界面,從而使相應的操作方式更為簡便和靈活。值得注意的是,Wincode程序除了支持UU編碼外,還支持MIME、BINHEX等多種編碼格式,故而應用范圍相當廣泛。


2.MIME編碼(Multipurpose Internet Mail Extentions)


 雖然UU編碼也能解決E-mail傳送中文或非ASCII碼文件的問題,但它的編解碼方式在現在看來非常不方便,這就促使了MIME編碼標準的產生。Mimencode最早被稱為Mmencode,之所以提出用Mimencode代替Uuencode,是因為Uuencode編碼使用的一些字符在一些郵件網關(特別是那些轉換ASCII碼和EBCDIC碼的網關)中會造成傳輸障礙。另外,還有一些電子郵件軟件不能對所有Uuencode碼的算法進行正確解碼而導致郵件的閱讀困難,因此MIME編碼就被設計用來替代Uuencode編碼,但歷史的結果是這些編碼協議得到了共存。


MIME編碼一般被譯作“多媒體郵件傳送模式”,它是可以傳送多媒體文件,并在一封電子郵件中附加各種格式文件一起發送的編碼標準。我們現在最常使用的電子郵件軟件Outlook Express、Eudora、Foxmail和一些網上在線郵局如163、263等都是采用MIME編碼方式的,所以我們得以非常輕松的收發電子郵件。


由于MIME定義的是一種編碼規格,或者可以說只是一類編碼的統稱,所以能夠符合MIME標準的編碼方式并非只有一種。事實上只要符合MIME規格的編碼方式都能順利的傳送郵件。目前在MIME編碼標準下公認的兩種編碼方式分別是Base64編碼和QP(Quote-Printable)編碼。另外,Internet上還有幾種種編碼是HZ編碼、UTF-7編碼和UTF-8編碼。


(1)Base64編碼


Base64的編碼規則是將整個文件重新編碼成7位以適用于傳送二進制文件。具體來說是將字符流順序放入一個24位的緩沖區(缺字符的地方就補零),然后再將緩沖區截斷成為4個部分(高位在前),每個部分6位,并用下面的64個字符重新表示:“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”。如果輸入只有一個或兩個字節,那么輸出將用等號“=”補足,這樣的編碼方式可以有效隔斷附加信息對編碼造成的混亂。這就是Base64編碼。


(2)QP(Quote-Printable)編碼


QP編碼的規則是,對于資料中的7位字符不作重新編碼,而是僅將8位的數據轉成7位即可。我們可以看到,QP編碼是字符對應的編碼,每個未編碼的二進制字符都會被編碼成3個字符,即一個等號加上兩個該字符的16進制值,如“=A8”,但這樣的編碼數為1:3,所以編碼效率相對于其它編碼方式而言相當低。但不可否認的是,這種編碼方法非常簡單,特別適合那些數據大多數是7位的ASCII碼文本、偶爾插入8位字母的情況,但遺憾的是對漢字編碼效果不夠好,因為每個雙字節漢字經過編碼后會變成6個字節。


(3)HZ編碼


HZ編碼也是一種Internet上常見的編碼方式,它的編碼規則是只對高位為1的字符(如漢字的雙字節內碼)進行編碼。具體方法是將最高位屏蔽,只保留低7位,并將經過變換后的字符部分用符號~{和~}括起來,當解碼的時候只需將括號對里面的那部分高位重置為1就可以正確的加以還原了。


  需要特別指出的是,MIME編碼標準如今已成為Internet電子郵件的主流編碼標準。它的好處顯而易見:我們可以物件作為包裝方式,然后將多種不同文件一起打包后傳送。發信人只要將欲發送的文件選定好,MIME編碼就會在傳送時即時編碼,待收信人收取郵件后同樣也能即時解碼還原這些文件。可以看得出來,這種全部由電子郵件軟件自動完成的傳送方式較UU編碼方式來說,實在是方便不少。當然,這種郵件傳送方式成功的先決條件是雙方的郵件軟件都必須支持MIME編碼功能,要不然發信人很方便的把信送出去了,但收信人的軟件卻沒有這種功能而無法把它還原,他看到的自然就是一大堆亂碼了。要知道,使用這種方式用戶根本不需要知道它是如何進行編碼解碼的,不管是用中文寫信,還是寄多媒體文件,只要選好文件,選完后寄出,其余的工作可全部由電子郵件軟件自動完成。


由于MIME編碼的這種便利性、可靠性,現在越來越多的電子郵件(幾乎所有)都采用了這種編碼方式,像我們國內用戶最常使用的電子郵件軟件Outlook Express、FoxMail、Eudora、The Bat!、Netscape Mail和Internet Mail等都支持MIME編碼標準。一般來說,MIME編碼中具體方式的選擇也會影響編碼之后郵件文件的大小,但具有MIME編碼功能的E-mail軟件大都能自動判別發送過來的郵件是采用何種MIME編碼,然后自動選擇是用Base64還是用QP來解碼。當然,即使是正確的MIME編碼也可能因為郵件文本格式的不規范而不能得以正確解碼,這個時候,我們從E-mail軟件或Hotmail里面得到的Base64編碼或QP編碼就可能成為亂碼,這也是MIME編碼產生亂碼的主要原因之一。


3.BINHEX編碼


  由于BINHEX的編碼方式主要用于Mac機,PC機上很少使用,所以一般PC機上的電子郵件軟件多數支持MIME編碼標準而很少支持BINHEX格式的。在我們常用的電子郵件軟件中,只有Eudora具有這種功能可直接解讀BINHEX編碼。


4.其它編碼


這類編碼主要指日文Shift-JIS、日文Shift-EUC、韓文KSC、繁體中文Big5等語言內碼,本文主要針對繁體中文Big5碼而言。我們知道,由于它們是不同語言環境下的不同語言內碼,在通過電子郵件傳遞的過程中就難免不出現亂碼,因此這里將它們歸為email中一類比較特別的編碼。


特別提示:對于上面提到的四類編碼,最新的Foxmail 3.1版支持Uuencode和MIME兩種編碼,但MIME編碼只支持8位(8bit)編碼方式(也有稱作UTF-8編碼的),另外它還支持us-ascii、ISO-8859-1、簡體中文GB2312、日文Shift-JIS、韓文KSC、繁體中文Big5等多種字符集。總的來說,它比較適合以純文本方式傳送正文。而Outlook Express 5則支持Uuencode編碼和MIME中的Base64以及QP兩種編碼方式以及UTF-7、UTF-8編碼和多國文字字符集,除此之外它還支持郵件正文以HTML方式傳送,這就是我們用Outlook Express能看到有著漂亮背景的郵件的原因。另外,我們上面提到的Windows下的Wincode解碼程序也能支持Uuencode編碼、MIME編碼以及Binhex編碼,但非常遺憾的是,對于MIME編碼,Wincode只能處理Base64的編碼,而沒有QP編碼的功能,實在是有些美中不足。


二、亂碼現形之真相大白篇


在以下內容中,我們將下面這段話作為所有亂碼對應的簡體中文,并存為lm.txt文本,用來分析下面九類亂碼的特征與形式:


在人類歷史上,從來沒有一項技術及其應用像互聯網一樣發展那么快,對人們的工作、生活、消費和交往方式影響那么大,并且,隨著高度信息化的網絡社會的到來,人們在生產和生活方式、觀念和意識等方面也必然會發生巨大的變化。


1.Uuencode“亂碼”


由于Uuencode編碼的內部所用算法是Base64編碼的算法,所以它的格式與Base64編碼格式非常相似,差別僅僅在于“信頭”部分不同。


Uuencode“亂碼”的大體格式為:


begin 666 lm.txt


2NLV]N\WYM[W*O=.PS^S$Q\.T`


end


我們可以看到Uuencode“亂碼”的主要特征是:編碼以“begin xxx”開頭,后面緊接著編碼之前原始文件的名稱,接著是已經用Uuencode編碼的郵件內容,在亂碼內容的后面,即最后一行為“end”。此外,亂碼內容基本上除了最后兩行外每行都是以英文字母“M”開頭。上面那段話中,“begin”至“end”之間的內容即為“在人類歷史上,從來沒有一項技術及...”這段話的Uuedncode編碼。


  如果我們所用的電子郵件軟件不支持Uuencode解碼,那么我們看到的就是這些Uuencode“亂碼”。


2.Base64 encode“亂碼”


  Base64是MIME標準編碼之一,它的編碼方式是將4個字節(8位)用3個字節(6位)表示,由于編碼后的內容是6位的,因此可以避免第8位被截掉。一般以附件發出的各種文件都會使用這種編碼,其內容往往是一大堆雜亂無章但都可以正常顯示的ASCII碼字符(其大小被限定在0-63之間, 分別用'A'-'Z'、'a'-'z'、'0'-'9'、'+'和'/'組成),同時郵件頭上有“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的標志頭中影響編碼的主要有三行(分號后的內容算上一行):第一行表明是MIME編碼;第二行是Content-Type(內容及類型),它說明郵件的內容類型是純文本、圖片還是壓縮文件或是超文本文檔(如text/plain表示普通文本文件、text/html表示超文本文件、application/x-zip-compressed表示zip壓縮文件),至于charset(字符集)則是用來說明信中文字所用字符集的(通常有us-ascii、ISO-8859-1、GB2312等);第三行為Content-Transfer-Encoding(內容傳輸編碼方式),表示編碼方式(如base64、qutoed Printable或7bit);有的郵件最后一行還有Content-Disposition字樣,它表示編碼文件的位置。對應亂碼的內容即是“在人類歷史上,從來沒有一項技術及...”這段話的Base64編碼。


如果我們所用的電子郵件軟件不支持Base64解碼,那么我們看到的就是這些Base64 encode“亂碼”。


3.QP encode“亂碼”


  QP encode也是MIME標準編碼之一,這種編碼的全名之所以叫作“Quoted-Printable Content-Transfer-Encoding”,是因為用這種格式表示的信息其內容主要都是ASCII碼字符集中可以打印的字符,因此名稱中含有printable。QP編碼的方式是將一個字節用兩個16進制數值表示,然后在前面加“=”。


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編碼將一個8位的字符表示為3個字符:一個“=”和兩個16進制數。由于漢字編碼一般以兩個8位表示一個漢字,所以該編碼中表示一個漢字需要6個字符,如此段中的“=C8=CB”表示“人”字,“=C0=E0”表示“類”字。采用QP編碼方式的郵件很容易進行判別,因為它的內容通常含有很多等號“=”,即使不看“信頭”我們也能非常容易的判斷它是否為QP encode編碼。在實際使用中,這種編碼還有一種變形,即用“%”號代替“=”號。


如果我們的電子郵件軟件不支持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亂碼的特征外,在開頭和結尾分別有“+”和“-”符號。其信頭下的內容即為“在人類歷史上,從來沒有一項技術及...”這段話的UTF-7編碼。


5.UTF-8“亂碼”


UTF-8“亂碼”的大體格式為:


Mime-Version: 1.0


Content-Type: text/plain;


charset="utf-8"


Content-Transfer-Encoding: 8bit


鍦ㄤ漢綾誨巻鍙蹭笂錛屼粠鏉ユ病鏈変竴欏規妧鏈強鍏跺簲鐢ㄥ儚浜掕仈緗戜竴鏍峰彂灞曢偅涔堝揩錛屽浜轟滑鐨勫伐浣溿


Content-Type: text/plain;


charset="utf-8"


Content-Transfer-Encoding: 8bit


保存為.eml的文本文件后用OutLook Express解碼查看,同樣需要單擊菜單欄“查看”/“編碼”/“Unicode(UTF-8)”。


方法3:將UTF-8“亂碼”郵件存為一個.txt的文本文件,并改文件名后綴為.uue,然后使用Winzip來解碼。如果不行,還可在這個文本文件的郵件信頭處添加如下幾行:


Mime-Version: 1.0


Content-Type: text/plain;


charset="utf-8"


Content-Transfer-Encoding: 8bit


要注意信頭中間不要空行,信頭和信體之間要留有一個空行(即在“Content-Transfer-Encoding: 8bit”下要留有一行空行)。這樣形成的文件名后綴依然要改為.uue,然后用Winzip打開,信體一般就會被正確解碼。


6.解決HZ“亂碼”的方法


方法1:將HZ“亂碼”郵件轉寄到自己的一個郵箱中,然后在OutLook Express中單擊菜單欄“查看”/“編碼”/“簡體中文(HZ)”,即可看到解碼后的內容。


方法2:將HZ“亂碼”郵件存為一個.txt的文本文件,將文件名后綴改為.eml,由OutLook Express打開,并單擊菜單欄“查看”/“編碼”/“簡體中文(HZ)”即可看到解碼的內容。如果郵件使用的是附件方式,則可將附件保存后再用OutLook Express打開查看。必要時也可以剪貼下來,再加上如下信頭:


Mime-Version: 1.0


Content-Type: text/plain;


charset="hz-gb-2312"


Content-Transfer-Encoding: quoted-printable


保存為.eml的文本文件后用OutLook Express解碼查看。


方法3:將HZ“亂碼”郵件存為一個.txt的文本文件,并改文件名后綴為.uue,然后使用Winzip來解碼。如果不行,還可在這個文本文件的郵件信頭處添加如下幾行:


Mime-Version: 1.0


Content-Type: text/plain;


charset="hz-gb-2312"


Content-Transfer-Encoding: quoted-printable


特別要注意的是信頭中間不要空行,信頭和信體之間卻要留有一個空行(即在“Content-Transfer-Encoding: quoted-printable ”下要留有一行空行)。這樣形成的文件名后綴依然要改為.uue,然后用Winzip打開,信體一般就會被正確解碼。


特別提示:通過對上面六類亂碼的解決,我們能夠看出對于UU編碼和MIME類的亂碼,一般可以有三種方法解決,第一種是通過轉寄亂碼郵件(有的情況下可以不用轉寄)后用支持該編碼的電子郵件軟件來接收、查看;第二種是將亂碼郵件存為以.eml為后綴名的文本文件,然后用OutLook Express解碼查看;第三種則是將亂碼郵件存為以.uue為后綴名的文本文件,然后用Winzip解碼查看,如果這兩種方式沒有能夠直接解碼成功,則一般可以通過添加信頭來解決。對于各種不同類型的亂碼,它們要添加的信頭僅僅在于字符集charset和內容傳輸編碼方式Content-Transfer-Encoding有區別。另外,對于Uuencode編碼和Base64亂碼,還有第四種方法,就是用Windows下的Wincode程序來解碼閱讀。


#1 7.解決半個漢字“亂碼”的方法


對于半個漢字亂碼,只要將“亂碼”郵件存為一個.txt文本文件,然后使用以字符為單位的編輯軟件,將“亂碼”行的首字符刪除,后面的部分就會和相鄰的“亂碼”重新組合成可識別的漢字。這樣雖然會丟失前面一個(或幾個)漢字,但能挽救、還原大部分漢字,有時候就足夠猜測出郵件的原意了。


#1  8.解決Big5碼和其它(如其它語言內碼)“亂碼”的方法


對于這些亂碼郵件,除了可以在Outlook Express中單擊菜單欄“查看”/“編碼”選項,并選中“簡體中文(GB2312)”編碼方式查看外,還可以用一些支持多種編碼的中文系統,如中文之星、Richwin、南極星等轉換平臺,并在其中選擇GB2312碼,一般就可以正常顯示郵件為簡體中文了。


#1 9.解決BINHEX“亂碼”的方法


這里還想對BINHEX“亂碼”作一不完全的解法介紹,雖然它極為少見,但如果你不幸碰上,還是可以用下面的方法試一試:


方法1:對于由BINHEX編碼產生的亂碼郵件,用Eudora來查看它。


方法2:用一個專門解讀BINHEX編碼的程序Binhex3.exe(共享軟件,在許多FTP站點都能找到)來打開閱讀。


方法3:將Base64 encode“亂碼”郵件存為一個.txt的文本文件,然后在Windows下用Wincode程序解碼。


#1 四、亂碼轉換之簡單裝備篇


#1 1.亂碼察看器(CodeView)


版本:2.50


  軟件大小:293KB


  發布日期:2000/8


  軟件類型:免費軟件


  使用平臺:Windows95/98/ME/NT/2000


  下載地點:http://topsoft.163.com/software/download.php?id=3597


功能等級:★★★★


亂碼察看器,顧名思義就是用來察看各種亂碼的一個小工具軟件。它目前支持Uuencode編碼、Base64編碼、Quoted-Printable編碼和HZ編碼四種單一形式的編碼和解碼以及Base64、Quoted-Printable和HZ編碼三種的混合形式的亂碼察看。除此之外,還提供了對Big5碼的支持,可以在Big5碼和GB碼之間自由轉換(也可以讓程序自動識別并將Big5碼轉換成GB碼),所以應該算是同類軟件中功能較為齊全的軟件了(特別是可以在Win2000下使用)。


亂碼察看器的界面不算很漂亮(如^53200027a^1),但操作起來很簡單,一般有兩種使用方法:一種是在有亂碼的窗口中直接按下單鍵解碼熱鍵(默認為F7),此時如果窗口中的亂碼能被識別,就會出現一個窗口覆蓋掉當前的亂碼窗口,我們可以直接在這個窗口中閱解碼后的內容。作者建議你在大多數情況下都使用這種方式;第二種方法是將亂碼內容通過剪貼板復制到亂碼察看器的源窗口中,然后手工嘗試用不同的解碼方式進行解碼,可以看到這種解碼方法將提供給你更多的選擇自由,并且可以使用一些在單鍵解碼中無法實現的解碼方式,如通過“其他方式解碼”解決由于字節高位被屏蔽而形成的死亂碼和通過“UUCode”解開Uuencode解碼等。對于一些單鍵解碼無法解決的亂碼問題我們不妨使用此方式試試。


亂碼察看器還有一個特色是提供了“剪貼板實時監視”、“混合亂碼識別”和“智能彈出”功能(智能彈出功能采用混合編碼的識別方法)。但是由于亂碼的多樣性,它識別混合編碼的成功率并不是很高,甚至經常會出現一些原本正常的內容被識別錯誤的情況,這時你不妨將單一的亂碼復制到剪貼板里(只復制亂碼部分,而不要包含正常的文字),或者采用在亂碼察看器中手動解碼的方法來試試。另外,如果一些正常文本復制到剪貼板后,亂碼察看器也會將它誤識為亂碼而自動彈出,這時建議你將其設置為“不要自動彈出”,可以避免一些不必要的麻煩。


總的說來,這款小軟件對于解決常見的亂碼還是比較有效的,特別是對于那些電腦初學者來說相當容易和輕松,可以省去不少的麻煩。它是綠色軟件,無需安裝,只要任意將其解壓到一個目錄中即可運行。


#1 2.郵件解碼器(Mail Decoder)


版本:1.0


  軟件大小:686KB


  發布日期:2000/6


  軟件類型:免費軟件


  使用平臺:Windows95/98/ME/NT/2000


  下載地點:http://netsurfe.e-lists.com.cn/download/decoder.exe


功能等級:★★★★☆


郵件解碼器也是一個類似于亂碼察看器的小軟件,但它能支持更多的編碼格式,因此解亂碼的成功率更高。它目前支持Base64編碼、Quoted-Printable編碼、HZ編碼、UTF-7編碼(->GB碼、->Big5碼)、UTF-8編碼(->GB碼、->Big5碼),此外還支持GB碼與 Big5碼的相互轉換。最難得的是此軟件還提供了一個非常實用的功能——“7位-8位”,它使你能手動解除因部分郵件服務器不支持8位碼而造成的郵件信息丟失的編碼。


郵件解碼器這個軟件也不以界面見長,一眼看上去普普通通(如^53200027b^2),但使用起來一樣非常簡單。該解碼器的內部提供了中文GB、BIG5和英文三種界面,如果你發現你的郵件解碼器不是中文的,你可以單擊菜單欄上左起第五個菜單(英文是Configuration),選中其中唯一的選項,在跳出的窗口中選擇“中文界面(GB)”(如^53200027c^3),確定即可變為中文。在使用時,一般來說,你可以直接將郵件亂碼文本拷貝到源文本框中,然后單擊“解碼”,找到對應的編碼單擊即可解碼,此時你就可以直接在目標文本框中看到郵件的廬山真面目了。另外,解碼的第二種方法允許你通過單擊“文件”/“打開”調出你保存下來的亂碼郵件文本在郵件解碼器左欄中,然后同樣單擊“解碼”在右欄中顯示郵件。


除了上面所介紹的功能之外,你在郵件解碼器中還可以單擊“文件”/“解碼文件按”,將你的郵件亂碼文件保存為經某種編碼解碼后的文本文件;可以單擊“文件”/“漢字內碼轉換器”,在GB碼與Big5碼之間任意相互轉換(即使保存編碼后的文件也行)。至于這個軟件附加的其它一些功能,如提供郵件的刪除、添加標志字符,換行等,操作起來也很簡單,基本上沒有什么難度。


總的來說,郵件解碼器是個相當實用的解除郵件亂碼的小工具,不僅操作簡單,而且功能強大,能使大多數出現的亂碼郵件恢復本來面目。


#1 3.Zeal Decoder


版本:1.0


  軟件大小:8K


  發布日期:1998/8


  軟件類型:免費軟件


  使用平臺:DOS/Windows9X


  下載地點:http://www.nease.net/~zealsoft/zdecoder.zip


功能等級:★★★


與前面介紹的兩個軟件不同,Zeal Decoder這個程序不是為解除大多數郵件亂碼而設計的,而是專門針對一種編碼設計的,目前它只處理Quoted-Printable編碼的亂碼郵件。


這個小軟件個頭奇小,加上說明文檔還只有8K,顯然不是windows下的程序。事實上它是一個DOS程序,但能在Windows下運行。其使用方法是在DOS窗口中輸入命令,但不需要郵件信頭就可以解碼。它的命令行語法是這樣的:


zdecode <infile> <outfile> [leading character]


 


如zdecode lm.txt lm.txt =


其中,infile表示輸入文件名,outfile表示輸出文件,leading character表示引導字符,它是可選項,絕大多數QP編碼的亂碼郵件都可以使用“=”等號作為引導字符(這是默認設置)。


如果某些QP編碼的亂碼郵件使用的引導字符不是“=”,而是“%”,則可以相應改變。


#1 4.Hzdecoder


版本:1.4


軟件大小:171K


發布日期:2000/8


軟件類型:免費軟件


使用平臺:Windows95/98/ME


下載地點:http://www4.netease.com/~lianghe/hzdecode.zip


功能等級:★★★


這個小軟件也是一個功能單一的郵件解碼軟件,它只能針對HZ編碼的亂碼郵件解碼。如果你經常收到一些HZ編碼的郵件(特別是在一些基于WEB方式的信箱中經常會出現這種亂碼),則不妨試試它。


對于這個小軟件的使用,也是非常簡單,你只需將亂碼的郵件粘貼到這個程序的編輯區它就可以自動顯示出正常的中文來。除了解碼外,Hzdecoder還能進行一些編碼,如Quoted-Printable編碼、Big5->GB碼、GB碼->Big5碼等。


#1 五、亂碼破解之流程篇


當你收到一封亂碼郵件時,第一步必須要做的是根據亂碼的特征判斷它到底屬于哪種編碼,如果能判斷出是哪種編碼,最簡單的方法當然是將亂碼郵件剪貼下來,利用現成的亂碼郵件解碼軟件(如亂碼察看器或郵件解碼器)來解碼閱讀或利用中文之星、Richwin、南極星這樣的中文平臺轉換內碼。但如果根據郵件的內容你一時判別不出是哪種編碼,或者你沒有任何現成的解碼工具軟件,則你可以如此一步一步的做下去(以Outlook Express 5為例):


步驟1:更改OE5設置。


啟動Outlook Express,單擊“工具”/“選項”命令,在出現的對話窗中單擊“閱讀”標簽,再單擊“字體”按鈕,選擇“簡體中文(GB2312)”。并接下來將它設置為默認值,單擊“國際設置”按鈕,選中“為接收的所有的郵件使用默認的編碼”,確定后退出。如此設置后,當你再打開郵件閱讀時,通常就不會再出現亂碼了。


步驟2:編碼選項查看。


如果第一步沒能奏效,你可以在Outlook Express中選定亂碼郵件,然后單擊“查看”/“編碼”/“簡體中文(GB2312)”或“其他”/“簡體中文(HZ)”,看看郵件內容是不是能破解。


步驟3:轉寄郵件后再收。


在第二步還不能奏效的情況下你可以將此郵件轉寄到你的另一個郵箱中,然后再用Outlook Express接收,有時即可順利解碼。當然,也可以試著用不同的電子郵件軟件接收此郵件,看看是否能消除亂碼現象,因為不同的電子郵件軟件對編碼的兼容能力還是有所不同的。


步驟4:改名為.eml后重解。


如果仍然顯示為亂碼,你可以將亂碼郵件存為一個.txt的文本文件(如果是通過WEB頁收取的郵件,就將信體剪貼下來存為一個.txt的文本文件),并改其后綴名為.eml,由Outlook Express來打開,這樣一般就可以自動解碼了。


步驟5:添加信頭后重讀。


如果還不行,你可以接著在上面那個.eml文件的最前面添加如下信頭:


Mime-Version: 1.0


Content-Type: text/plain;


charset="gb2312"


Content-Transfer-Encoding: base64


特別要注意的是信頭中間不要空行,信頭和信體之間卻要留有一個空行(即在“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解碼。


如問題仍得不到解決,可以將亂碼郵件存為一個.txt的文本文件,并改其后綴名為.uue,然后調用WinZip來對亂碼郵件進行解碼。


步驟7:添加信頭再用Winzip解碼。


倘若解碼無效,可以像在.eml文件中添加信頭那樣在.uue文件中添加信頭,然后再用Winzip解碼,相信絕大多數郵件亂碼到這一步就會露出其“廬山真面目”了。


步驟8:字符重組。


對于利用上面步驟還不能正確解碼的亂碼郵件,你可以將其存為一個.txt文本文件,然后使用任意以字符為單位的編輯軟件,將亂碼行的第一個字符刪除。看看后面的部分能不能和它相鄰的亂碼重新組成可識別的漢字。


步驟9:利用Wincode解碼。


如果到這里都不能搞定亂碼郵件,你只有借助Wincode了。將亂碼郵件存為一個.txt的文本文件,然后在Windows下調用Wincode程序解碼(Wincode程序支持UU編碼、Base64編碼和BINHEX等編碼格式)。


步驟10:調用內碼轉換平臺。


本來這個步驟應該早早在你判斷出編碼類型后就決定做不做的,但如果開始你判斷失誤,那么現在不妨回過頭來全面的做一遍。調出你所有的平臺轉換工具,嘗試盡可能全面的內碼轉換,看看能不能“死馬當活馬醫”!


如果以上步驟均不能奏效,則可以判斷收到的亂碼郵件是未經過編碼而造成第8位字節被濾掉的亂碼郵件,一般來說,這只能通過編程來解決,但郵件解碼器(Mail Decoder)這個軟件中提供了“7位-8位”這個功能,所以如果你不擅長編程就只好求助于它了。另外,可以再提醒你的是,在Outlook Express 5中,你可以在選中亂碼郵件后單擊右鍵,在出現的快捷菜單中選擇“屬性”項,并在出現的對話框中單擊“詳細資料”標簽,然后再單擊右下方的“郵件的源文件(M)”,此時你就會看到郵件亂碼的源文件。有時源文件就能顯示出你想要得到的所有信息,即使沒有的話,也能方便你將其存為.txt文本文件呀!


特別提示:郵件亂碼破解的一個關鍵點是判別亂碼的編碼類型,因為不同編碼的亂碼,在不同的平臺上有不同的解決方法,因此解碼前如果能查看到亂碼郵件的內容(可以利用源文件),再根據其特征對郵件可能的編碼方式(Uuencode、Base64、QP或HZ等其它編碼方式)進行判斷將能使我們的破解工作事半功倍。


#1 六、亂碼防范之日常措施篇


#1 1.選用大眾流行的電子郵件軟件


  由于不同的電子郵件軟件支持的編碼有所不同,收件人和發件人自己定制的一些選項也各不相同,所以在收到編碼過的郵件后,系統不一定就能識別出郵件所用過的編碼方法。如果識別不出編碼方法,則系統自然無法自動解碼。這樣當你查看郵件內容時,就會出現所謂的亂碼而無法閱讀。選用大眾流行的電子郵件軟件(如OutLook Express、Foxmail、Eudora和The Bat!等)可以在一定程度上避免這種尷尬的出現,因為這樣的郵件軟件一來用的人多,二來支持的協議一般來說也較多,所以出現無法自動解碼的幾率相對而言會小得多。除此之外,你還必須設置好你的電子郵件軟件,特別是其默認的簡體中文環境。現在有許多電子郵件軟件允許你選擇郵件的編碼解碼方式,你無論如何也要選擇MIME,因為這是目前使用最廣泛、支持率最高的協議。如果你的電子郵件軟件連它都不支持,你應該考慮換一種軟件了。


#1 2.最好不使用電子郵件軟件特別的編輯功能


Outlook Express的郵件編輯器是個功能很強的HTML編輯器,你甚至可以編輯五顏六色、各種字體的電子郵件。然而,如果接收方不是也使用Outlook Express來接收郵件的話,可能就只能看到HTML源代碼,這對于電腦初學者也許就意味著是“亂碼”。不過也有解決的方法:在撰寫郵件時,選擇“格式”菜單下的“純文本”選項。如果要將發送格式的缺省值設置為“純文本”,那么在Outlook Express主窗口中,打開菜單欄“工具”/“選項”,并在出現的選項設置對話框中單擊“發送”選項卡,將郵件發送格式設置為“純文本”。


#1 3.最好用記事本撰寫郵件內容后再插入郵件


對于特別重要的郵件,發信件前最好是先用記事本進行錄入編輯,然后再利用菜單中的“插入文本中的文件”命令將所寫內容復制到電子郵件的內容框中,這之后再發出,對方一般不會收到亂碼。


#1 4.編碼文件最好添加足夠的郵件“信頭”


  如果你要發送特定編碼的郵件,最好添加足夠的郵件“信頭”信息,這樣能夠一定程度上保證郵件能夠被正確解碼。建議對Uuencode編碼用Uuencode encoding作信頭,對Base64編碼用Base64 encoding作信頭,對QP編碼用Printable encoding作信頭。具體信頭內容見前面篇章所述。


#1 5.盡可能利用附件功能發送郵件和文件


  一般電子郵件軟件的“附件”功能可以自動對非標準ASCII碼格式的郵件文件自動進行Base64 方式編碼(僅對附件部分進行編碼),然后再進行發送。如果收信人的電子郵件軟件能夠區別郵件的這種編碼方式(目前絕大多數電子郵件軟件都支持MIME/Base64編碼),則可以自動將郵件解碼,而不會再出現亂碼。因此強烈建議你采用這種方式發送中文郵件或非標準ASCII碼格式的文件。


#1 6.發送重要郵件時最好先發測試信


  發送重要的郵件信息時,為了確認是否無須編碼即可發送正文(如果你不方便利用附件功能),你應該先在正文中用中文給收件人發一封測試信,而且還應確定收件人能否對郵件正文進行解碼。如果發送已經編碼的郵件,也最好添加足夠的“信頭”信息,以便收件人知道其所需的解碼方法。


#1 7.可以考慮將中文文件轉換為圖像文件隨附件發送


如果你向沒有安裝中文平臺的人發送中文電子郵件,則可以考慮將中文文件轉換為圖像文件并隨附件發送,這樣做的好處是可以讓收件方不用任何轉換平臺就能閱讀你的中文郵件,具體做法包括用掃描儀將信件和圖片制作成*.gif或*.jpg圖形文件,并放在附件里發送;用Word應用程序或其他制圖軟件以在圖片上打字的方法將中文內容轉化為圖像文件,放在附件里發送,這種方法還不需要掃描儀。


#1 8.電子郵件軟件最好統一定義為中文簡體(GB2312)編碼


為了減少收信時出現亂碼的現象,建議大家在使用電子郵件軟件時統一都將字體的“國際設置”定義為“簡體中文(GB2312)”。在中文版的Outlook Express或Outlook中,其缺省的設置都是中文簡體(GB2312)編碼,無需更改。但如果你要手動修改,也可以在Outlook Express中單擊菜單欄“工具”/“選項”選項,選擇“閱讀”標簽,并單擊“國際設置”按鈕,在其中選中“為接收所有郵件使用默認編碼”。


#1 9.接收Uuencode編碼的郵件最好不要使用Eudora軟件


這是因為Eudora這個電子郵件軟件會將附件文件恢復成二進制文件并存放在另一個目錄里。對于分成多塊傳送的Uuencode代碼,Eudora會將這些代碼的第一部分恢復成文件,而后面的就不管了(這顯然是不完整的)。這會妨礙你以后人工合并這些郵件。很多人使用The Bat!這種郵件軟件,它對附件的文件究竟是恢復到目錄中還是留在信體里會提供一個選項給你選擇,在這種情況下你也要特別注意正確作出選擇。


該文章在 2012/1/12 23:51:55 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved