ConvertZ ver 5.21 2003年1月15日 (Freeware for Non-commercial purpose) 用途: 中文 Big5/GBK/Unicode/UTF8 內碼轉換器。    注意:檔案轉換只能將純文字格式的文件(例如 txt, html 等)轉碼,    並不適用於如 MS Word, Excel 等 binary 檔案。 系統要求: 視窗9x/ME/NT/2000/XP 安裝: 將所有檔案解壓到一個新資料夾,然後直接在檔案總管執行 convertz.exe。 開啟ConvertZ後可於程式設定一欄選擇加快捷列到桌面、開始功能表、或程式集。 * 舊版本用家在更新版本時若想保留舊有設定或經修改過的詞彙修正列表,請參看下面附注。 刪除程式: 程式本身並不改變系統登錄或填入任何數值,若要從硬碟刪除本程式, 只須在檔案總管刪除 ConvertZ 所在的檔案夾及其捷徑。 注意事項: 為節省程式的開發時間,ConvertZ用Windows內建的API進行所有有關Unicode 內碼的轉換,故此視窗必須已經同時已安裝繁體及簡體的中文支援,否則本程式只能作Big5<>GBK 間的轉換。ConvertZ 於啟動時會偵查系統,若發現缺少上述任何一項支援會作出提示。Win9x/ME 使用者可以到 Windows Update下載、或在安裝 Ms Office/IE 時選擇加入有關元件; Win2000/XP 使用者可以在“控制台”安裝有關支援。 在 Win9x/ME 繁體視窗下預覽 Unicode 簡體文字時部份字會變成 ? 符號,這是因為程式所用的 memo 元件在繁體視窗下無法顯示簡體字的原故,對輸出結果並無影響。在 Win2000/NT 無這問題,所有簡體 unicode 字會正常顯示。 版本記錄: Ver 5.21 - 修正當文章內包含無效的html notation時出現字串被中途切斷的問題 Ver 5.20 - 更改主工具列的按鈕排列 - 修正按快速鍵時無聲效提示的問題 - 修正當目標檔案夾是relative path時出現的錯誤 - 修正詞彙編輯器內含少於一筆記錄時出現的顯示錯誤 - 對numeric notation的轉換進行一些優化 - 修正當目標碼是unicode/utf-8/numeric_notation在確認覆寫同名檔案時 選'否'仍然會覆寫的問題 Ver 5.10 - 移除「程式設定」內「更新檔名中文編碼」一欄,將類似選項搬到「檔案轉換」的視窗。 - 在「檔案轉換」有「轉換檔案名稱」及「轉換檔案內容」兩個選項。   「轉換檔案名稱」 「轉換檔案內容」 用途   ------------------------------------------------------------------------    勾取       不勾取     檔案名稱轉碼及重新命名,內容不變    勾取 勾取      檔名及內容同時轉碼,再儲存到目標檔案夾    不勾取      勾取      只對檔案內容轉碼,再儲存到目標檔案夾 - 可以對檔案夾下的所有檔案及子目錄名稱一次過的進行轉碼及重新命名 - 除 decimal notation 之外,現在 hex notation 亦可以在轉換時還原做文字。 - 加入剪貼簿“unicode > hex notation”及“unicode > decimal notation”功能。 - 檔案轉換加入 “decimal notation”選項。 - 修正一個導致記憶體洩漏的問題。 - 內碼表及詞彙修正表的一些修正。 Ver 5.06 - 修正經send_to啟動轉案轉換時無法轉&#xxxxx;格式統一碼的問題。 - 修改內碼對照表及詞彙修正表。 Ver 5.05 - 將Big5/GBK內碼對照表及詞彙修正表作一些修正(多數是不常用的字),  令繁轉簡時能對映到更合適的字形。 - 修正當輸出是GBK或Unicode繁體的時候某些字非常用字不能轉出來的問題。 - 以往版本當HTML檔案內Meta標籤的Charset數值除一些常用的寫法外很多都轉不  過來,現在所有已知的Big5/GBK/Unicode/UTF8的編法寫法都轉換時可自動修正。 - 修正其它一些小錯誤。 Ver 5.03 - 在 Ver 4.3 - 5.01 當目標字形是簡體時部份字不能做詞彙修正,已修正. - 若經由“檔案總管”功能表的“傳送到”啟動 ConvertZ 時,當點擊右上角  “轉碼設定”的按鈕會出現程式錯誤,已修正。 - 修正了檔案轉換當目標檔案是唯讀時出現的程式錯誤。 - 修正了其它一些小 bug. Ver 5.01 - 修正在 Win2000/XP 下當設定的的不是中文字型時不能預覽文章的問題. Ver 5.0 + 在繁體 Win2000 及 XP 下剪貼簿檢視器及檔案預覽的窗口支援 Unicode 簡體字顯示。 + 加入剪貼簿 CF_HTML 的支援。當在 Word、Excel、Powerpoint、IE、Outlook 等程式 之間做統一碼剪貼簿轉換時,貼回到程式時所有文字式樣(i.e. 字型/大小/顏色等)、 表格、圖像、鏈結、數學方程式、ActiveX 元件等均全部保留。  * 在 繁體 Win9x/ME 下若果有簡體字不能正常顯示請將字型改做 SimSun 或 Arial Unicode MS。 * 在 Ms Word 每次不應同時剪貼太多頁數(視乎文件是否有大量圖像及表格),否則 ConvertZ 讀入資料的時間會幾何級數上升,嚴重拖慢速度,正常情況每次轉換不應超過 20 頁。 * 若不須保留格式可在程式設定關閉這選項,加快轉換速度。 + 可以將 &#xxxxx; 格式的 unicode numeric notation (統一碼數字記法) 還原成目標編碼文字。 在程式設定可開關這選項。 + 檔案轉換:解決轉換大型檔案時可能出現記憶體不足的情況,不再受系統記憶體多少所限制, 任何2GB以下的檔案都可以正常轉換。 + 檔案轉換時狀態列會顯示正在轉換中的檔案名字,方便觀察進度。 + 在「檔案轉換」「進階選項」「語文輸出模式」一欄,若「繁體中文」及「簡體中文」 兩個都不勾取時,程式不會做詞彙修正,而且輸出文字的字形會依照原文,當目標編碼 沒有同一字形時才會用同義繁/簡體字代替。 Ver 4.3 - 修正部份字不能正確轉碼的問題 - Command 模式可以自動偵測來源檔編碼 Ver 4.21 - 一些錯誤的修正 Version 4.20: - 以往的版本當轉為 GBK, Unicode-BE, Unicode-LE 及 UTF-8 “繁體中文”時,一些 字當無對應 Big5 字時會變成空白格,現已修正(插入原本的字)。 - 修正當剪貼簿只有 unicode 文字時檢視器無法內容的問題。(只發生在 Win9x) Version 4.10: - 之前版本當為來源檔案選擇不正確的編碼時可能會出現 'List index out of bounds' 的錯誤,已修正。 - 加強 Command Mode 的支援,可以自由在 Unicode-LE, Unicode-BE, UTF-8, GBK, Big5 各種編碼間做檔案轉換及可以指定輸出的是繁體 或是簡體 (當輸出內碼是 Big5 時只可以是繁體)。 使用的語法跟之前不同,詳細資料參巧在本檔案近結尾的部份。 Ver 4.03 - 更改排序的方法去修正個別詞彙不能修正的問題. - 修正簡體轉簡體時部份包含簡體字的詞彙不能修正的問題. - 字碼對照表作出小量更改. Ver 4.02 * 改寫偵測編碼的方法,準確率提升,繁體GBK文章亦再不會被誤認作BIG5。 * 添加幾個GBK的缺字。 - 改正轉換 html 檔案時部份 charset 的數值不能修正的錯誤。 - 修正其它一些小錯誤。 Ver 4.01 - 修正在 Explorer Mode 下不能作 Unicode 檔案轉換的問題。 - 修正另外幾個介面上的小錯誤。 Ver 4.0 + 新增 Unicode Big Endian, Unicode Little Endian, UTF8 檔案轉換的功能. + 除Big5 外,其它輸出模式可以選擇結果是繁體或簡體中文. * 輸入及輸出的內碼可以相同。例如:Big5>Big5,方便只作詞彙修正而不轉碼  的情況用。或 GBK>GBK 然後選擇輸出結果是繁體或簡體字型。 * 可自由設定 UTF8 編碼的輸出檔案是否加 BOM (Byte-Order-Mark) 到檔案開  始部份。 * Unicode Big-Endian 及 Unicode Little-Endian 自動加 BOM 到檔案開始部份。 + 除原有的剪貼簿GBK<>Big5熱鍵外,新增統一碼繁/簡體轉換的熱鍵. + 「檔案轉換」視窗新增「只轉換檔案名稱」選項,只對檔名轉碼及重新命名。 ********************************** 剪貼簿統一碼繁簡轉換的應用: Q: 在繁體 Windows 下,如何在簡體網頁貼文? A: 先用繁體輸入法在簡體網頁打好文字,剪入剪貼簿,選擇 ConvertZ 主工具列 上「剪貼簿 統一碼:繁轉簡」功能,然後貼回原處便可。 Q: 如何在繁體系統的 OutLook Express 寄出簡體中文電郵? A: 步驟大致同上,注意將轉換後的剪貼簿內文貼回 OutLook 前先將文字的編碼法   轉成簡體,方法:功能表-->格式/編碼/簡體中文(GB2312)。 Q: 當複製簡體網頁的內容到剪貼簿及貼到其它應用程式,所有簡體字變成問號,怎辦? A: 複製後在 ConvertZ 的主工具列上選擇「剪貼簿 統一碼:簡轉繁」功能,所有 剪貼簿內的簡體字會轉換成繁體字,再貼到其它程式便可以。 * 在簡體視窗下,遇到上述類似情況,解決方法一樣,只須將選擇的 「剪貼簿 統一碼:繁轉簡」及「剪貼簿 統一碼:簡轉繁」倒過來。 * 這功能同時適用於其它用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。 ********************************* 如何在更新版本時保留舊有設定及修正列表內自行新添的詞彙? 1. 若要保留舊版本同樣的程式設定,只須將舊有的 convertz.ini 備份然後複製到新版 ConvertZ 的目錄。 2. 若要將舊詞彙修正列表內自行添加的新詞結合到新版上,方法如下: A) 方法一 (用 Excel): a. 用Wordpad將舊的 b5fix.dat (除首兩行)及新版的 b5fix.dat (除首兩行)合併。 b. 將合併後的文字用剪貼簿複製及貼到 Excel 新活頁簿的 A2 儲存格。 c. 全選 A 行,在功能表選擇「資料」「篩選」「選階篩選」,勾取「不選重複記錄」 然後按確定。 d. 將 A2 至 最後一個顯示文字的的儲存格複製到剪貼簿。 e. 將新 b5fix.dat 第三行及以下的全刪除,在第三行貼入經篩選的文字,然後儲存檔案。 B) 方法二 (用 UltraEdit): a. 用 UltraEdit 分別開啟新/舊的 b5fix.dat。 a. 用剪貼簿將舊的 b5fix.dat (除首兩行)及新版的 b5fix.dat (除首兩行)合併 到 UltraEdit 的另一空白頁。 c. 在功能表選擇'File/Sort/Advanced Sort Options',勾取'Remove Duplicates', 然後按'Sort'鍵',之後將全篇複製到剪貼簿。 d. 將新 b5fix.dat 第三行及以下的全刪除,在第三行貼入經篩選的文字,然後儲存檔案。 *********************************** 聲明: 作者概不負責用者因使用本程式而導致該電腦系統之任何故障。 若有任何意見及發現任何程式錯誤,請致函作者。 作者 : 李志成 (香港) 電郵 : csli534@ctimail3.com 網址 : http://alf-li.tripod.com