* Revised By Gwo Trang 3-14-1999 ftp://ftp.nsysu.edu.tw/cpatch/faq/set_eudora4.txt Subject: (必看) Eudora4 中文相容性解決方式 by 果糖 --- 目錄 ==== 0.Eudora Pro 4.1.0.67(Demo)∼4.2.0.24(Beta) 問題概說 1.解決通訊錄衝碼 2.解決郵件亂碼 3.解決 "Message-Id:" 訊息在信件中會出現多次的問題 4.解決系統處理中文字會當機問題 5.解決通訊錄存檔時有大寫英文字會被轉換為小寫問題 6.解決錯誤視窗內的文字會顯示亂碼問題 7.解決無法建立中文名稱檔案,系統只取英文和數字的問題 8.解決首字空白亂碼問題 9.解決附加檔案不相容中文問題 (含 '\' 和 '|' 字元問題) 10.解決標題(主旨)和寄件人會顯示 Base64 亂碼問題 11.解決信件內容瀏覽時會顯示 Base64 亂碼問題 12.解決接收 Outlook 寄來的中文附檔時會建立 Base64 亂碼檔案問題 13.在 Eudora 中不可修改的字串 14.檔案下傳處 14.1 修改文件 14.2 原始英文檔 14.3 修改與中文化檔案 14.4 單獨修正中文不相容問題 (保留原文) 15.有問題歡迎來信指教 0.Eudora Pro 4.1.0.67(Demo)∼4.2.0.24(Beta) 問題概說 ==================================================== Eudora Pro 是一套功能強大的郵件軟體,但是本身不相容中文 ,我把影響較大的問題分為 12 項簡單的向各位說明: 1.無法完整的瀏覽中文信件,即使有修正過 Riched32.dll 也  是一樣,有些中文字會被吃掉而無法正常顯示,例如信件內  容是 '大募集人力資料',而畫面會顯示 '大順陘H力資料'。  打開 Use Microsoft's viewer 功能時更慘,其實出現亂碼  不是 MS 的問題,是因為 Eudora 本身就不相容中文字,信  件使用 Microsoft's viewer 的時候其實會讓畫面更漂亮。  這個 bug 修正後,即使沒有修正過 Riched32.dll 檔案,信  件一樣正常顯示中文字。    瀏覽信件前也不需要先開啟中文輸入法。 2.打開 Use Microsoft's viewer 會出現中文亂碼問題。 3.在通訊錄內無法正常顯示暱稱,因為 Eudora 會在每個暱稱  前面多加一個 'AB' 字元,所以在中文 Win98 系統下會出現  亂碼,例如新增一個暱稱 'super' 後,會顯示 '哀uper'。 4.新增通訊錄檔案時,Eudora 會將名稱內所有的大寫英文字轉  換成小寫,所以存檔跳出 Eudora 後再進入時會顯示亂碼。  例如新增一個通訊錄 '新竹朋友',而畫面會顯示 '新竹沱友'  真是讓人不能容忍,就連 Nickname 目錄下的檔案也是一樣,  兩個空的檔案 '新竹朋友.txt、新竹朋友.toc',另外又建立  兩個亂碼檔 '新竹沱友.txt、新竹沱友.toc'。 5.新增信箱時,畫面雖然可以正常顯示中文字,但是 Eudora 所  建立的信箱檔案卻亂七八糟,它只會將信箱名稱內的 '0∼9'  'a∼z' 和 'A∼Z' 視為可用字元來儲存檔案,例如建立一個  信箱名稱為 '果糖' 而檔案卻是 'G}.mbx',若信箱名稱內沒  有可用字元,如 '技術' 檔案名稱只會建立 '.mbx',如果信箱  一多,恐怕信箱都會互相覆蓋。經過修正後,Eudora 已經可以  正常的儲存中文名稱的信箱檔案。   6.編輯簽名檔時,若內容只包含英文字元和數字時,Eudora 可  以正常運作,但簽名檔一但輸入中文後,要存檔時,Eudora  就會進入無限迴圈,感覺如同當機。經過修正後,已經完全  相容中文。聽許多人說過,使用 Eudora 有時會當機,這就  是因為 Paige32.dll 在做怪,例如在寄信時,信件會附加簽  名檔,這個時候 Paige32.dll 在處理中文時,就會讓 Eudora  進入無限迴圈而當機,另外在某些狀況下 Paige32 也會自行  運作,當機都是它造成的。 7."Message-Id:" 訊息在信件中會出現很多次,有時重複兩次,  有時三次或四次。 8.錯誤視窗內的文字會顯示亂碼,那些訊息都是 Eudora 從別  的地方抓進來的,經過字元過濾後,只有英文字和數字會保  留下來,其它的字元全部都會被空白 20h 替代。 例如訊息 '硬體固障,已經中斷連接埠。' 就會變成.. ' w T A w g _ s C' 這個地方花了一個多月才找到,實在累人。 9.首字空白會出現亂碼問題,這是因為程式將空白 20h 都轉換成 A0h 字元,這會造成接在後面的中文字變成亂碼。 經過修正後,在空白的地方使用方向鍵移動不再是跳兩格,而是 一格一格跳,也就是一個 byte 一個 byte 的移動,而所有內含 A0h 的中文字也都可以正常顯示了。 Eudora 的處理方式是,將信件內所有空白都轉換成 A0h,當編 輯信件完成後再將信件內所有的 A0h 轉換成空白再譯成 &nbsp; 儲存在信件中等待寄出。 我的修正方式是,將 A0h 用 FFh 替代,這樣中文字就全部都可 以保留下來,另外再加上一些判斷,使得信件內容在轉換時可以 用空白 20h 來替代,信件亂碼的問題就完全解決了。 10.中文附加檔案不相容中文問題,當我們寫一封信給自己時,例如 附檔是 '四十.txt' '成功了.txt' Eudora 寄出的信件,用 Netscape 來收信,會看到 '四十.txt' 和 '了.txt',成功兩個 字不見了,同樣一封用 Eudora 來收信,會看到 Q.txt 和 F.txt, 所有的中文字全部都被吃光光,這是 4.2 版看到的情形,比之前 使用 4.1 時還慘,4.1 至少還可以看到幾個中文字,不過 4.2 寄出去的的四十很正常,不像 4.1 會變成 '奶Q',這個問題修 正後,中文的附加檔案使用 Eudora 已經可以正常收發了。 11.Base64 亂碼是 Eudora 讀信時最令人頭疼的問題,它不是 bug, 而是系統沒有能夠設計出自動解碼的功能,編碼後的資料有誰看 得懂? =?big5?b?pnCm87FOSW5zdGFsbKSkpOWkxg==?= =?big5?b?............................?= 常常收到朋友寄來的亂碼信,我都只能皺眉頭,根本沒辦法猜透 對方的心意,相信每個使用 Eudora 來讀信的朋友感覺都一樣吧。 我的修正方法是,在程式中挪用一塊程式碼,撰寫新增的解碼判 斷,將資料直接丟給 Eudora 內部的解碼副程式來達到我們解碼 的目地,修正後的 Eudora 會變得很聰明,連「信件內容」裡面 的 Base64 亂碼都能夠自動解碼,這可是 Outlook Express 和 其它郵件軟體所不及的地方。 Eudora 會產生亂碼的資料檔總共有兩個:*.toc 和 *.mbx .toc 是儲存寄件人和主旨部份,而 .mbx 則是信件內容部份,所 以下面總共會修正兩個地方。 12.接收 Outlook Express 寄來的中文附檔檔名會建立 Base64 亂碼 檔案問題,這個問題修正後,系統已經可以自動判斷編碼結構並將 資料還原。 【修正方式若未在旁邊註明代表適用各版本】 1.解決通訊錄衝碼 ================ 檔案: Eudora.exe 搜尋: 6A AB 52 (共一組) 修改: -- 20 -- 6AAB PUSH AB --> PUSH 20 52 PUSH EDX E869021500 CALL 5D7C50 2.解決郵件亂碼 ============== a.檔案: Eudora.exe (僅適用 4.1.0.67 Demo & 正式版) 搜尋: 0F 8C C5 05 (共一組) 修改: E9 26 06 00 80FBC0 CMP BL,C0 0F8CC5050000 JL 00517692 80FBFF CMP BL,FF 0F8FBC050000 JG 00517692 80FBC1 CMP BL,C1 7513 JNZ 005170EE b.檔案: Eudora.exe (僅適用 4.2.0.24 Beta) 搜尋: 0F 8C DF 05 (共一組) 修改: E9 40 06 00 0FBEC3 MOVSX EAX,BL 3DC0000000 CMP EAX,000000C0 0F8CDF050000 JL 00530560 3DFF000000 CMP EAX,000000FF 0F8FD4050000 JG 00530560 80FBC0 CMP BL,C0 3.解決 "Message-Id:" 訊息在信件中會出現多次的問題 ================================================= 檔案: Eudora.exe 搜尋: 74 16 8B 55 (共一組) 修改: EB -- -- -- 8B48F8 MOV ECX,[EAX-8] 85C9 TEST ECX,ECX 7416 JZ 004127C3 8B5500 MOV EDX,[EBP+00] 83CFFF OR EDI,-01 4.解決系統處理中文字會當機問題 ============================== 檔案: Paige32.dll 搜尋: 74 20 8D 85 (共一組) 修改: EB -- -- -- 5.解決通訊錄存檔時有大寫英文字會被轉換為小寫問題 ================================================ 檔案: QCUtils.dll 搜尋: FF D3 83 C4 04 8B (共一組) 修改: 90 90 -- -- -- -- 搜尋: FF D3 8B 16 (共一組) 修改: 8B C1 -- -- 6.解決錯誤視窗內的文字會顯示亂碼問題 ==================================== 檔案: Eudora.exe 搜尋: 74 09 8A 44 (共一組) 修改: -- 00 -- -- 7.解決無法建立中文名稱檔案,系統只取英文和數字的問題 ==================================================== 為了相容中文,我們應該避開中文字的用字範圍: High Byte = A1h∼FEh,Low Byte = 40h∼7Eh、A1h∼FEh 檔案: QCUtils.dll (共一組) 搜尋: 3C 20 74 2E 3C 7F 7F 2A 3C 61 7C 04 3C 7A 7E 22 3C 41 7C 04 3C 5A 7E 1A 3C 30 7C 04 3C 39 7E 12 修改: 3C 22 74 18 3C 2A 74 14 3C 2E 74 10 3C 2F 74 0C 3C 7C 74 00 3C 3A 72 1C 3C 3F 77 18 B0 20 EB 14 3C20 CMP AL,20 CMP AL,22 '"' 742E JZ 60003FA9 JZ 60003F93 3C7F CMP AL,7F CMP AL,2A '*' 7F2A JG 60003FA9 JZ 60003F93 3C61 CMP AL,61 CMP AL,2E '.' 7C04 JL 60003F87 改為 JZ 60003F93 3C7A CMP AL,7A -----> CMP AL,2F '/' 7E22 JLE 60003FA9 JZ 60003F93 3C41 CMP AL,41 CMP AL,7C (保留 \ 和 | 字元) 7C04 JL 60003F8F JZ 60003F8B 3C5A CMP AL,5A CMP AL,3A ':' (: ; < = > ?) 7E1A JLE 60003FA9 JB 60003FAB 3C30 CMP AL,30 CMP AL,3F '?' 7C04 JL 60003F97 JA 60003FAB 3C39 CMP AL,39 MOV AL,20 7E12 JLE 60003FA9 JMP 60003FAB 8.解決首字空白亂碼問題 ====================== 字元 FF 為中文字唯一未用到的碼,我們就利用這個優點作為判斷字元。 檔案: Eudora.exe a.搜尋: 3F A0 75 03 (將判斷字元 A0 改為 FF,共一組) 修改: -- FF -- -- b.搜尋: 68 A0 00 00 00 8B (將判斷字元 A0 改為 FF,共三組) 修改: -- FF -- -- -- -- c.搜尋: A0 AC F1 修改: FF -- -- (修改功能對照表,共一組,原 A0 為&nbsp;,改 FF 為&nbsp;) 檔案: Eudora.exe d.搜尋: F7 46 64 00 00 00 08 8A 44 24 08 74 12 3C 20 75 0E 66 83 BE B8 07 00 00 20 0F 86 92 00 00 00 8B 8E 98 07 00 00 修改: 8B 8E 98 07 00 00 8A 44 24 08 3C 20 74 08 3C FF 75 13 B0 20 EB 0F 80 79 FF 09 0F 82 91 00 00 00 90 90 90 90 90 (增加對 FF 及 09 字元的判斷,共一組) a.803FA0 CMP BYTE PTR [EDI],A0 -> CMP BYTE PTR [EDI],FF 7503 JNZ 004A346D C60720 MOV BYTE PTR [EDI],20 b.68A0000000 PUSH 000000A0 ----------> PUSH 000000FF 8B d.F7466400000008 TEST DWORD PTR [ESI+64],08000000 8A442408 MOV AL,[ESP+08] 7412 JZ 004AD852 3C20 CMP AL,20 750E JNZ 004AD852 6683BEB807000020 CMP WORD PTR [ESI+000007B8],20 0F8692000000 JBE 004AD8E4 8B8E98070000 MOV ECX,[ESI+00000798] 8801 MOV [ECX],AL ↓ 8BBE98070000 MOV ECX,[ESI+00000798] 8A442408 MOV AL,[ESP+08] 3C20 CMP AL,20 7408 JZ 004AD849 3CFF CMP AL,FF 7513 JNZ 004AD858 B020 MOV AL,20 EB0F JMP 004AD858 8079FF09 CMP BYTE PTR [ECX-1],09 0F8291000000 JB 004AD8E4 90 NOP 90 NOP 90 NOP 90 NOP 90 NOP 8801 MOV [ECX],AL 9.解決附加檔案不相容中文問題 (含 '\' 和 '|' 字元問題) ===================================================== High Byte = A1h∼FEh,Low Byte = 40h∼7Eh、A1h∼FEh 檔案: Eudora.exe (僅適用 4.2.0.24 Beta) a.搜尋: 3E 3F 5B (修改過濾字元,共二組) 修改: -- -- 00 b.搜尋: 75 20 3C 20 7C 1C 0F BE C8 51 68 70 (修改檔案過濾判斷,共二組) 修改: EB 04 -- -- -- -- -- -- -- -- -- -- c.搜尋: 63 00 FF D5 83 C4 08 85 C0 75 06 (字元過濾,共一組) 修改: -- -- -- -- -- -- -- -- -- -- 00 d.搜尋: 3C FF 15 64 55 63 00 修改: -- E8 D4 CE 02 00 90 (寄信時的檔名檢查副程式,現在將流程轉向執行相容中文字的副程式,共一組) e.搜尋: F9 FF FF 83 C4 10 85 C0 74 53 8D 8C 24 30 02 00 00 6A 5C 51 FF 15 64 55 63 00 修改: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- E8 BC A2 0B 00 90 (收信時的檔名檢查副程式,處理同上將流程轉向,共一組) f.搜尋: 00 3D FF 00 00 00 0F 8F D4 05 00 00 80 FB C0 75 13 68 FC 0D 6B 00 8D 4C 24 14 E8 C5 94 0D 00 E9 修改: 57 8B 7C 24 08 33 C0 83 C9 FF F2 AE 41 F7 D9 4F B0 5C FD F2 AE 80 3F A1 73 F9 47 8B C7 FC 5F C3 (修改無用的程式碼,另外寫一個較聰明的副程式,增加對 '\' 字元的判斷,共一組) b.8A06 MOV AL,[ESI] A880 TEST AL,80 7520 JNZ 004754CF 3C20 CMP AL,20 7C1C JL 004754CF 0FBEC8 MOVSX ECX,AL c.8A06 MOV AL,[ESI] 3C20 CMP AL,20 7218 JB 004755B1 0FBEC0 MOVSX EAX,AL 50 PUSH EAX 6888F56300 PUSH 0063F588 FFD5 CALL EBP 83C408 ADD ESP,08 85C0 TEST EAX,EAX 7506 JNZ 004755B1 8A0E MOV CL,[ESI] 880F MOV [EDI],CL 47 INC EDI 4B DEC EBX 8A4601 MOV AL,[ESI+01] 46 INC ESI 84C0 TEST AL,AL 75D6 JNZ 0047558F e.6A5C PUSH 5C ---> '\' 51 PUSH ECX FF1564556300 CALL [00635564] 直接轉向改為 --> CALL 0052FF80 (呼叫我們寫好的副程式) 8BD0 MOV EDX,EAX 83C408 ADD ESP,08 f.57 PUSH EDI 8B7C2408 MOV EDI,[ESP+08] 33C0 XOR EAX,EAX 83C9FF OR ECX,-01 F2AE REPNZ SCASB 41 INC ECX F7D9 NEG ECX 4F DEC EDI B05C MOV AL,5C -> '\' FD STD F2AE REPNZ SCASB 803FA1 CMP BYTE PTR [EDI],A1 --> 判斷是否為中文字? 73F9 JAE 0052FF93 47 INC EDI 8BC7 MOV EAX,EDI FC CLD 5F POP EDI C3 RET 10.解決標題(主旨)和寄件人會顯示 Base64 亂碼問題 =============================================== Base64 編碼所包含的字元: 「ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=」 Base64 結構:Re: =?big5?b?pnCm87FOSW5zdGFsbKSkpOWkxg==?= -- --- -- (1) (2) (3) (1) 編碼資料開始 (2) ?B? = Base64,?Q? = Quoted-Printable (3) 編碼資料結束 檔案: Eudora.exe (僅適用 4.2.0.24 Beta) a.搜尋: F2 AE 8B 2E 6A 00 F7 D1 49 (顯示寄件人部份,將流程轉向新增解碼的副程式,共一組) 修改: 8B 2E 6A 00 E8 08 DC FE FF b.搜尋: F2 AE F7 D1 49 8D 44 24 60 (顯示主旨部份,處理同上將流程轉向,共一組) 修改: E8 62 DA FE FF -- -- -- -- c.搜尋: 7D 0F 00 00 80 FB C1 75 13 68 00 0E 6B 00 8D 4C 24 14 E8 AD 94 0D 00 E9 65 0F 00 00 80 FB C2 75 13 68 68 0E 6B 00 8D 4C 24 14 E8 95 94 0D 00 E9 4D 0F 00 00 80 FB C3 75 13 68 18 0E 6B 00 8D 4C 24 14 E8 7D 94 0D 00 E9 35 0F 00 00 80 FB C4 75 13 68 64 0E 6B 00 8D 4C 24 14 E8 65 94 0D 00 E9 1D 0F 00 00 80 FB C5 75 13 68 F4 0E 6B 00 8D 4C 24 14 E8 4D 94 0D 00 E9 05 0F 00 00 80 FB C6 75 13 68 04 0E 6B 00 8D 4C 24 14 E8 35 94 0D 00 E9 ED 0E 00 00 80 FB C7 75 13 68 F8 0E 6B 00 8D 4C 24 14 E8 1D 94 0D 00 E9 D5 0E 00 00 80 FB C8 75 13 68 84 0E 6B 00 8D 4C 24 14 E8 05 94 0D 00 E9 BD 0E 00 00 80 FB C9 75 13 68 8C 0E 6B 00 8D 4C 24 14 E8 ED 93 0D 修改: 57 8A 07 3C 3D 74 07 3C 00 74 7D 47 EB F3 47 81 7F 04 35 3F 42 3F 75 E9 E8 77 00 00 00 52 56 4F 57 B8 00 9D 6A 00 50 50 57 83 C7 09 57 33 C9 8A 07 3C 2B 74 1E 3C 3D 74 1A 3C 2F 74 16 3C 3F 74 16 3C 30 72 1A 3C 39 76 0A 24 DF 3C 41 72 10 3C 5A 77 0C 47 41 EB D8 80 7F 01 3D 75 01 47 47 8B F7 5F 51 57 B9 00 9D 6A 00 E8 D2 A2 ED FF 59 8B 09 5F 03 F9 A4 80 7F FF 00 75 F9 E8 14 00 00 00 5E 5A 5F E9 78 FF FF FF 5F 33 C0 83 C9 FF F2 AE F7 D1 49 C3 57 51 33 C0 BF 00 9D 6A 00 B9 08 00 00 00 F2 66 AB 59 5F C3 3D 00 00 00 00 74 0D 57 8B F8 51 50 E8 47 FF FF FF 58 59 5F 67 64 89 0E 00 00 C3 83 FE 00 74 0D 57 8B FE 51 50 E8 2E FF FF FF 58 59 5F C3 (修改無用的程式碼,另外寫一個處理 Base64 解碼的副程式,共一組) a.F2AE REPNZ SCASB \ F7D1 NOT ECX 直接改為 CALL 0052FFA0 (呼叫解碼副程式) 49 DEC ECX / 8D442460 LEA EAX,[ESP+60] 改為 b.F2AE REPNZ SCASB ------> MOV EBP,[ESI] 8B2E MOV EBP,[ESI] PUSH 00 6A00 PUSH 00 CALL 0052FFA0 (呼叫解碼副程式) F7D1 NOT ECX 49 DEC ECX 8D442460 LEA EAX,[ESP+60] c.57 PUSH EDI 8A07 MOV AL,[EDI] 3C3D CMP AL,3D ---> '=' 7407 JZ 0052FFAE 3C00 CMP AL,00 747D JZ 00530028 47 INC EDI EBF3 JMP 0052FFA1 47 INC EDI 817F04353F423F CMP DWORD PTR [EDI+04],3F423F35 ---> '5?B?' 判斷 Base64 結構 75E9 JNZ 0052FFA1 E877000000 CALL 00530034 ---> 清除暫存區 52 PUSH EDX 56 PUSH ESI 4F DEC EDI 57 PUSH EDI B8009D6A00 MOV EAX,006A9D00 ---> 挪一塊記憶體充當暫存區 50 PUSH EAX 50 PUSH EAX 57 PUSH EDI 83C709 ADD EDI,09 57 PUSH EDI 33C9 XOR ECX,ECX 8A07 MOV AL,[EDI] 3C2B CMP AL,2B ---> '+' 741E JZ 0052FFF3 3C3D CMP AL,3D ---> '=' 741A JZ 0052FFF3 3C2F CMP AL,2F ---> '/' 7416 JZ 0052FFF3 3C3F CMP AL,3F ---> '?' 7416 JZ 0052FFF7 3C30 CMP AL,30 ---> 取字元 0∼9 721A JB 0052FFFF 3C39 CMP AL,39 760A JBE 0052FFF3 24DF AND AL,DF 3C41 CMP AL,41 ---> 取字元 A∼Z 7210 JB 0052FFFF 3C5A CMP AL,5A 770C JA 0052FFFF 47 INC EDI 41 INC ECX EBD8 JMP 0052FFCF 807F013D CMP BYTE PTR [EDI+01],3D ---> '=' 7501 JNZ 0052FFFE 47 INC EDI 47 INC EDI 8BF7 MOV ESI,EDI 5F POP EDI 51 PUSH ECX 57 PUSH EDI B9009D6A00 MOV ECX,006A9D00 ---> 設定暫存區位址 E8D2A2EDFF CALL 0040A2E0 -------> Base64 解碼主要副程式 59 POP ECX 8B09 MOV ECX,[ECX] 5F POP EDI 03F9 ADD EDI,ECX A4 MOVSB 807FFF00 CMP BYTE PTR [EDI-01],00 75F9 JNZ 00530014 E814000000 CALL 00530034 ---> 清除暫存區 5E POP ESI 5A POP EDX 5F POP EDI E978FFFFFF JMP 0052FFA0 5F POP EDI 33C0 XOR EAX,EAX 83C9FF OR ECX,-01 F2AE REPNZ SCASB F7D1 NOT ECX 49 DEC ECX C3 RET 57 PUSH EDI 51 PUSH ECX 33C0 XOR EAX,EAX BF009D6A00 MOV EDI,006A9D00 B908000000 MOV ECX,00000008 F266AB REPNZ STOSW 59 POP ECX 5F POP EDI C3 RET 3D00000000 CMP EAX,00000000 740D JZ 0053005C 57 PUSH EDI 8BF8 MOV EDI,EAX 51 PUSH ECX 50 PUSH EAX E847FFFFFF CALL 0052FFA0 ---> 判斷 Base64 結構和解碼處理 58 POP EAX 59 POP ECX 5F POP EDI 6764890E0000 MOV FS:[0000],ECX C3 RET 83FE00 CMP ESI,00 740D JZ 00530075 57 PUSH EDI 8BFE MOV EDI,ESI 51 PUSH ECX 50 PUSH EAX E82EFFFFFF CALL 0052FFA0 ---> 判斷 Base64 結構和解碼處理 58 POP EAX 59 POP ECX 5F POP EDI C3 RET 11.解決信件內容瀏覽時會顯示 Base64 亂碼問題 =========================================== 檔案: Eudora.exe (僅適用 4.2.0.24 Beta) a.搜尋: 64 89 0D 00 00 00 00 5B 83 C4 50 C2 04 00 8D 修改: E8 E1 44 0B 00 90 90 -- -- -- -- -- -- -- -- (使用 Microsoft's viewer 時信件原始資料部份,將流程轉向新增解碼的副程式,共一組) b.搜尋: 66 85 ED 75 66 修改: E8 40 AD 07 00 (不使用 Microsoft's viewer 時信件原始資料部份,將流程轉向新增解碼的副程式,共一組) a.64890D00000000 MOV FS:[00000000],ECX 5B POP EBX 83C450 ADD ESP,50 C20400 RET 0004 8D4C2420 LEA ECX,[ESP+20] ↓ E8E1440B00 CALL 00530048 90 NOP 90 NOP b.FF542438 CALL [ESP+38] 8BE8 MOV EBP,EAX ---> E840AD0700 CALL 00530063 6685ED TEST BP,BP 7566 JNZ 004B5389 12.解決接收 Outlook 寄來的中文附檔時會建立 Base64 亂碼檔案問題 ============================================================== 檔案: Eudora.exe (僅適用 4.2.0.24 Beta) 搜尋: 0F BE C0 50 68 88 F5 修改: E8 C5 AA 0B 00 EB 0B (處理中文附檔名稱部份,將流程轉向新增解碼的副程式,共一組) 搜尋 : 46 84 C0 75 D6 修改 : -- -- -- -- F2 (跳開不必要的流程加快處理速度,總共有兩組,修改第一組即可) 8A06 MOV AL,[ESI] 3C20 CMP AL,20 7218 JB 004755B1 0FBEC0 MOVSX EAX,AL ---> E8C5AA0B00 CALL 00530063 50 PUSH EAX EB0B JMP 004755AB 6888F56300 PUSH 0063F588 FFD5 CALL EBP 83C408 ADD ESP,08 85C0 TEST EAX,EAX 7506 JNZ 004755B1 8A0E MOV CL,[ESI] 880F MOV [EDI],CL 47 INC EDI 4B DEC EBX 8A4601 MOV AL,[ESI+01] 46 INC ESI 84C0 TEST AL,AL 75D6 JNZ 0047558F -> 75F2 JNZ 004755AB 13.在 Eudora 中不可修改的字串 ============================ 在中文化 Eudora 的過程中,發現有些字串是不可以修改的: Attachment Converted: Date: Status: 第一個字串修改後會讓附加檔案的圖示不正常。 第二個字串修改後會影響接收信件時的 Timezone 值。 第三個字串則是屬於 Eudora Pro 信件狀態的辨別字串。 用 VC++ 編輯 Eudora32.dll 時,Dialog 116 不可直接 修改後回存,否則通訊錄內的 Nickname、Address(es) 會不見,而且所建立的暱稱、郵件地址.. 等等都無法更 改名稱。 Highest High Normal Low Lowest 上面五個字串也是屬於辨別字串,不能修改。 String Table-1020 字串 "Toolbar" 為辨別字串,不能修改。 14.檔案下傳處 ============ 14.1 修改文件 ftp://ftp.nsysu.edu.tw/cpatch/faq/set_eudora4.txt (4.1.0.67 Demo∼4.2.0.24 Beta) 14.2 原始英文檔 ftp://ftp.qualcomm.com/eudora/eudorapro/windows/english/demo41/ep41demo.exe (4.1.0.67 Demo) ftp://ftp.qualcomm.com/eudora/eudorapro/windows/english/beta42/ep42b24.exe (4.2.0.24 Beta) ftp://ftp.qualcomm.com/eudora/eudorapro/windows/english/updater41/ep4xto41.exe 14.3 修改與中文化檔案 ftp://ftp.nsysu.edu.tw/cpatch/email/eudora/cep41_9.zip (4.1.0.67 Demo) ftp://ftp.nsysu.edu.tw/cpatch/email/eudora/cep41_reg.zip (4.1.0.67 正式版) ftp://ftp.nsysu.edu.tw/cpatch/email/eudora/cep42.zip (4.2.0.24 Beta) 14.4 單獨修正中文不相容問題 (保留原文) ftp://ftp.nsysu.edu.tw/cpatch/email/eudora/fix_demo41.zip (4.1.0.67 Demo) ftp://ftp.nsysu.edu.tw/cpatch/email/eudora/fix_reg41.zip (4.1.0.67 正式版) ftp://ftp.nsysu.edu.tw/cpatch/email/eudora/fix_beta42.zip (4.2.0.24 Beta) 15.有問題歡迎來信指教 ===================== 這是我第一次為了中文亂碼問題而在 WINDOWS 環境下修改成功的軟體,感覺很棒。 有任何問題請電 gwotrang@hello.com.tw。 -- 【ICQ# : 10732312】 仲琦帳號 : gwotrang@mail.ht.net.tw 永久帳號 : gwotrang@hello.com.tw、gwotrang@ms5.url.com.tw 積極測試中。