ConvertZ ver 8.02 2005年6月3日 (僅供個人免費使用,不得作任何商業用途) 用途: 中文 Big5/GBK/Unicode/UTF8 內碼轉換器。    注意:檔案轉換只能將純文字格式的文件(例如 txt, html 等)轉碼,    並不適用於如 MS Word, Excel 等 binary 檔案。 系統要求: 視窗9x/ME/NT/2000/XP/2003 安裝: 將所有檔案解壓到一個新資料夾,然後直接在檔案總管執行 convertz.exe。 開啟ConvertZ後可於程式設定一欄選擇加快捷列到桌面、開始功能表、或程式集。 刪除程式: 程式本身並不改變系統登錄或填入任何數值,若要從硬碟刪除本程式, 只須在檔案總管刪除 ConvertZ 所在的檔案夾及其捷徑。 注意事項: 為節省程式的開發時間,ConvertZ 用Windows 內建的 API 進行 unicode 內碼的轉換,故此視窗必須已經同時已安裝繁體 (codepage 950) 及簡體 (codepage 936) 的中文支援。 ConvertZ 於啟動時會偵查系統,若發現缺少上述codepage支援會作出提示。 Win9x/ME 使用者可以到 Windows Update下載、或在安裝 Ms Office/IE 時選擇加入有關元件; Win2000/XP 使用者可以在“控制台”安裝有關支援。 在 Win9x/ME 繁體視窗下預覽 Unicode 簡體文字時部份字會變成 ? 符號,這是因為程式所用的元件在繁體視窗下無法顯示簡體字的原故,對輸出結果並無影響。在 Win2000/NT 無這問題,所有簡體 unicode 字可正常顯示。 版本記錄: ver 8.02 - 在APE v1標籤各字串尾部加入終結符號 (兼容Monkey's Audio v3.97或之前版本)。 - 在各預覽窗口補回右鍵功能表。 ver 8.01 - 添加APE及OGG音樂檔案標籤的轉換。 - 當ID3v2設定為unicode編碼而v2標籤並不存在時,轉換後會產生亂碼,已修正。 - 可更改檔案預覽的長度。 - 數值在P以下的HTML Notation現更改為不作轉換。 - 可同時使用多個自訂詞彙修正表,舊有的須在設式設定自行匯入。 - 安裝有RICHED20.DLL的繁體Win9x/ME平台可在檔案預覽及剪貼簿檢視器正常顯示unicode簡體字。 - UTF-8檔案改為預設不加BOM。 - 大量程式碼的改寫及修正。 ver 7.40 - Win9x的鍵盤設置並不影響剪貼簿轉換,鍵盤設置錯誤的提示改為只出現在WinNT/XP。 - 檔案轉換:若某字在目標編碼沒有對應字,會用Html Notation替代。(只適用於Html類型檔案) - 當Shift-JIS字符的首字節數值大於$EF時進行Shift-JIS<>JIS/EUC轉碼會出現錯誤,已修正。 - 當ID3v2的目標編碼是unicode或utf-8而檔案只有ID3v1, 轉換時程式會自動複製ID3v1標籤到ID3v2。 - 更新內碼對照表及詞彙修正列表。 - 其它一些介面上的的小更改及修正。 ver 7.32 - 不少用戶遇到因系統鍵盤設置錯誤而導致剪貼簿轉換後出現亂碼的情況,現當啟動ConvertZ 時會檢查當前鍵盤設置,如發現錯誤會彈出提示窗口,用戶請依指示修改系統設定。 - 一些介面上的小修正。 - 更新內碼對照表及詞彙修正列表。 ver 7.31 - 修正gbk(asc)/big5(asc)>unicode檔名轉換後子資料夾名稱變成亂碼的問題。 ver 7.30 - 在Win9x/Me下檔案轉換時如果檔案清單超過32768個檔案會導致程式錯誤,已修正。 - 如果MP3的ID3v2 header標示錯誤的標籤大小,轉碼可能導致檔案損壞,已加入檢測程序自動作出修正。 - 剪貼簿檢視器的介面輕微修改。 - 監控ID3及檔名轉換窗口檔案列表所在的目錄,當內容更改時自時更新。 - 更新內碼對照表及詞彙修正列表。 ver 7.22 - 在簡體中文系統下程式介面上有幾個地方出現文字亂碼,已修正。 ver 7.21 - ID3轉換“目錄模式”預覽標籤時出現輕微記憶體洩漏,已修正。 - 修正「檔案及資料夾名稱轉碼」窗口介面上的一些錯誤。 - 補上剪貼簿GBK<>Shift-JIS轉換模式。 - 於剪貼簿轉換時自動修正因不正確鍵盤設置而導致的亂碼。 ver 7.20 - 修正QuotedPrintable解碼當遇到換行符號時無法正確轉換的bug。 - ID3編輯器複製ID3v2標籤到ID3v1時漏了曲目一欄,已修正。 - 檔案轉換窗口當來源目錄和程式安裝目錄相同時,會無法顯示檔名,已修正。 - 個別情形下CF_HTML轉換剪貼時會有文字缺失情況,已修正。 - 各熱鍵組合可自行選擇轉換的模式。 - ID3轉換添加在標籤欄目結尾插入空白字元的選項,解決個別程式的兼容問題。 - 當檔名或ID3轉碼窗口開啟時,如果在My Document目錄下建立新資料夾,會導致AV錯誤,已修正。 - ID3編輯窗口,當勾取id3v2而下面各欄目是空白的話,更新時程式會長時間停頓,已修正。 - 檔名/ID3轉碼:在檔案模式時,選取目錄會開啟新窗口,避免跟目錄模式混淆。 - 其它一些介面上的小更改。 ver 7.11 - 個別網友回報打開剪貼簿檢視器時出現程式錯誤,我對可能引致這錯誤的一段  程式碼作了些修改。 - 檔案轉換介面上的的小修正。 ver 7.10 - 依ID3v2官方規格重寫ID3標籤轉換的部份: a. 支持ID3 v2.2/2.3/2.4的讀取,及v2.3/2.4的寫入。(舊版只支持v2.3) b. 除Ansi轉碼外,現支持ID3 v2.3/2.4標籤轉換成Unicode/Utf-8格式。 c. 舊版本轉出的utf-8 ID2v2標籤有bug,漏填ID3 frame的encoding byte,已修正。 注意此新版無法辨識舊版本轉出來錯誤的utf-8標籤,必須用舊版ConvertZ先轉回 Ansi編碼再用新版本做轉換。  d. 舊版本只轉換ID3v2.x標籤內指定欄目,現所有欄目的文字一概轉換。 e. 支持ID3 v2.3/2.4 compressed frames,轉換時自動解壓和再次壓縮。 f. 編輯ID3v2.x標籤資料時,沒能顯示的欄目將保留不變。(舊版本是將之刪除) g. 新增選項,供一次性轉換當前目錄及子目錄內的所有MP3檔案。  h. ID3v1.x不支持utf-8編碼,舊版錯誤的一併轉換,已修改。 i. 輸入/輸出編碼一欄只顯示big5/gbk/shift-jis,若要將ID3v2.x轉換為 unicode/utf-8,可於另一下拉式方塊選擇Ansi、Unicode-BE、Unicode-LE 或Utf-8(Ansi是指big5/gbk/s-jis任何一種),若輸出是unicode/utf-8時, ID3v2.x標籤會依Ansi轉碼的類型自動轉換。 - 對程式碼做一些優化,轉換速度有提升。 - 取消 *.ndx檔案(升級用家可刪除安裝目錄內的這些檔案),改用*.cdx格式代替。 - 其它一些介面上小錯誤的修正。 Ver 7.04 - 在Win9x當檔案轉換時若"轉換檔案名稱"及"轉換檔案內容"同時選取時, 副檔案名會多了一個字符, 已修正. - "資料夾及檔案名稱轉換"的窗口, 當預覽的檔名長度起出窗口寬度會用提示方塊顯示. Ver 7.03 - 修正在cgi文件轉碼修正charset時將\符號錯誤切除的問題. - 修正顯示檔案名稱的提示方塊無法顯示系統語系以外unicode文字的問題. - 調整窗口大小令程式適用於大部份的螢幕解像. - 更改在Win9x下部份窗口所用的字型(w2k/xp不變)。 - Win9x下在選擇資料夾的窗口當按下“新資料夾”按鈕時會出現程式錯誤,已修正。 - Explorer crash 後自動復原工具欄的小圖示(需要Shell ver.4.70或以後)。 Ver 7.02 - 修正在Win9x當開啟檔案名稱及ID3標籤轉換窗口時出現的AV錯誤。 - 一些介面上字型的修改。 Ver 7.01 - 檔案轉換新增日文 Shift-JIS, JIS, EUC-JP 編碼的支持。 所有半形日文假名會自動轉成全形字符。 * GBK日語文件可能會被錯誤偵測做EUC-JP(因為兩種編碼的日文假名部份都是用 相同內碼區段),使用時請注意。 - 新增資料夾/檔案名稱的編碼轉換。* 工具列左邊第二個按鍵。  模式一:整個資料夾的檔案及子目錄名稱的轉換。  模式二:只轉換指定的檔案或目錄名稱。  * 來源編碼一欄Big5(asc)及GBK(asc)是當中文字被錯誤分拆成兩個Unicode西歐 字元時(通常是更新Windows版本後出現)做文字內碼修正之用。 - 剪貼簿轉換加入其它一些轉碼模式。 - ID3 標籤轉換加入日文 Shift-JIS 的支持。 - 舊版本在某些情況當轉碼後會缺了文章最後的一個字節,已修正。 - 主工具列可調校自訂的底色和按鈕顏色。 - 大量小錯誤的修正. ********************************** 剪貼簿繁簡轉換的應用: Q1: 在繁體 Windows 下,如何在簡體網頁貼文? A1: 先用繁體輸入法在簡體網頁打好文字,剪入剪貼簿,選擇 ConvertZ 主工具列 上「剪貼簿 統一碼:繁轉簡」功能,然後貼回原處便可。 Q2: 如何在繁體系統的 OutLook Express 寄出簡體中文電郵? A2: 步驟大致同上,注意將轉換後的剪貼簿內文貼回 OutLook 前先將文字的編碼法   轉成簡體,方法:功能表-->格式/編碼/簡體中文(GB2312)。 Q3: 當複製簡體網頁的內容到剪貼簿及貼到其它應用程式,所有簡體字變成問號,怎辦? A3: 複製後在 ConvertZ 的主工具列上選擇「剪貼簿 統一碼:簡轉繁」功能,所有 剪貼簿內的簡體字會轉換成繁體字,再貼到其它程式便可以。 Q4: 在Win2000/2003/XP做剪貼簿轉換,須然已選取正確的轉換模式,但出來的是亂碼。 A4: 可能是系統的文字輸入服務設定有誤,關閉所有程式,用滑鼠右按Windows工具欄   輸入法的小圖示,選擇“設定值”,將“預設輸入語言”更改如下:    繁體Windows:中文(台灣) - 中文(繁體) - 美式鍵盤    簡體Windows:中文(PRC) - 美國 * 在簡體視窗下,應用方法相同,只須將上述的「繁轉簡」及「簡轉繁」倒過來。 * 這功能同時適用於其它用Unicode作文字核心的程式(ie. Word, Excel)。 ********************************* 有關詞彙修正的補充資料: 程式會從文件前端開始讀取內容,同時對照詞庫內有沒有相同字串 (對照時以較長的字串為優先),若找到相同的便會進行替換及 跳到該字串尾後繼續搜尋及轉換,全篇文章從首至尾只讀取一次。 下面是參巧例子: 在詞庫內有 : AB , MM ABC , NNN CD , OO DE , PP FG , QQ 轉換前的字串是: ABCDACDEFGABADE 轉換後變成: NNNDAOOEQQMMAPP 注意第一個出現的 AB 因為 ABC 的出現並無轉為 MM, 而第一個出現的 CD 亦因為被 ABC 中斷而無轉為 OO, 同樣道理,第一個出現的 DE 亦無轉為 PP。 利用這規律技巧地添加新字串到“詞彙修正”的詞庫便可有效提高辨識率。 『簡轉繁修正列表』內有大量左右兩邊都相同(左右兩組字串完全相同)的字串, 是依上述法則添加到表內作提高轉換的準確率之用,除非瞭解上述法則及將 相關的其它字彙作出修改,否則不應刪除這些字串。 <範例1> 列表中只有:明了,明瞭 原句 :他查明了原因。大家明了他的心情。 轉換後:他查明瞭原因。大家明瞭他的心情。 <-- 第一個「明了」轉錯了        ︿錯 若列表中再加入:查明,查明 (用“查明了,查明了”代替亦可,結果相同。) 轉換後:他查明了原因。大家明瞭他的心情。 <---- 全部正確 <範例2> 列表中只有:十裡,十里       裡余,里餘 原句 :這裡余下三人,他們行了裡余路,離目的地還有十裡余。 轉換後:這里餘下三人,他們行了里餘路,離目的地還有十里余。      ︿︿                    ︿ 第一個“裡余”轉錯意思,第三個“裡余”因為被“十裡”中斷了而沒有被轉換。 若在列表中再加入:裡余下,裡餘下          十裡余,十里餘 轉換後會是:這裡餘下三人,他們行了里餘路,離目的地還有十里餘。 <--- 全部正確 ********************************* 詞彙修正的資料是分別放在 b5fix.dat (繁) 及 gbfix.dat (簡) 兩個檔案。 除非做大量的修改,不鼓勵直接編輯該兩個檔案,而應該用程式內建的編輯器 去增刪詞彙。 若有需要直接編輯這兩個檔案,下面是一些注意的事項。 在 b5fix.dat 及 gbfix.dat,逗號及空白格同樣是用作分隔字串之用,當字串內有空白格、逗號、或雙引號(半形),字串的頭尾兩端要加入雙引號,而原句子如果有雙引號(")的話須要修改做 "",否則轉換時會出現錯誤。 例如:    一 裡,一 里 <------- 錯!“一”字後面有空白格 應改做:   "一 裡","一 里" 下面是另一些例子: 字串 甲 -----> "字串 甲" 字,串 乙 -----> "字,串 乙" 字"串丙 -----> "字""串丙" 字 串 丁 -----> "字 串 丁" * 當使用者直接編輯 b5fix.dat 及 gbfix.dat 時才須要留意上述事項,如果是用 ConvertZ 內建的編輯器添加新句子,程式會自動完成上述的修改。 *********************************** Command Line 模式的使用: 語法: convertz [CodeIn] [Face] [FileOut] [CodeIn]  輸入編碼 (可省略)   參數 輸入的編碼方法  ------------------   /i:ule Unicode Little Endian   /i:ube Unicode Big Endian   /i:utf8 UTF-8   /i:gbk GBK   /i:big5 Big5   *在省略這參數的情況下,程式會自動偵測來源檔案的編碼。若果來源檔案    是 GBK 或 Big5 碼,建議當檔案裡面有多於100個中文字時才用這功能,    否則程式可能會錯誤判斷編碼。   輸出編碼   參數 輸出的編碼方法  ------------------   /o:ule Unicode Little Endian   /o:ube Unicode Big Endian   /o:utf8 UTF-8   /o:gbk GBK   /o:big5 Big5 [Face]  輸出字體(可省略)   參數 輸出的字型  ------------------   /f:t 繁體字型 (Traditional)   /f:s 簡體字型 (Simplified)   /f:d 直接轉換不做詞彙修正,當輸出的編碼沒有同樣字型時會用同義字代替。 輸入編碼 輸出編碼 在缺乏 /f 參數時的假設值  ---------------------------   GBK Big5 /f:t   Big5 GBK /f:s   其它的編碼轉換 /f:d  * 若果輸出編碼是 Big5 /f:s 參數無效  輸入檔案的路徑+名稱,支援萬用字符 [FileOut] 輸出檔案的路徑+名稱,支援萬用字符(可省略) * 在 FileOut 省略的情況下,轉碼結果會覆寫到 FileIn * 若檔案名稱包含空白格,須要在檔名的前後兩端加入雙引號 (") 例體: 1) convertz /i:big5 /o:ule /f:s test1.txt test2.txt 上述指令會將 test.txt 的內容由 Big5 轉為簡體中文的 Unicode-LE 編碼 並將結果儲存到 test2.txt。 2) convertz /i:utf8 /o:big5 *.* 上述指令將當前目錄的所有檔案由 utf-8 轉做 big5 碼,輸出結果會覆寫 原來的檔案。 3) convertz /o:ule /f:t k*.txt "D:\Temp Dir\*.abc" 上述指令會搜尋當前目錄內所有檔名首個字母是 k 及副檔名是 txt 的檔案, 自動偵測它們的原來編碼,然後逐一轉換成為繁體 Unicode-LE, 並另存到 'D:\Temp Dir' 目錄,新檔案名稱跟原來檔案相同但副檔名會改做 abc。 *********************************** 聲明: 本程式僅供個人免費使用,不得用作任何商業用途。 作者概不負責用者因使用本程式而導致該電腦系統之任何故障。 若有任何意見及發現任何程式錯誤,請致函作者。 作者 : 李志成 (香港) 電郵 : lialfred@hkbn.net 網址 : http://alf-li.pcdiscuss.com