ConCmd 1.5  (Freeware for non-commercial use)             11/19/2002


這是 ConvertZ 的 Console 版本，ConvertZ 雖然內建了 Command Line 的支援，但因為它本身是 GUI 程式，在 Command Line 執行時效率會稍差，所以我另外做了這個版本。

1.5 版新增 /cu 參數，作為轉換統一碼數字記法之用。
另外，/f 參數的用法有改（參看下面語法一欄）。


用途：
檔案中文內碼轉換　(Unicode Big Endian, Unicode Little Endian, UTF-8, GBK, Big5)

系統需求：
- Win9x/ME/NT/2000/XP
- Windows 系統必須同時己安裝繁體及簡體的支援（Win2000 及 XP 系統只須在"控制台/國別設定" 加入上述支援，Win9x/ME 系統如果無安裝上述支援的話可以到 Windows Update 下載）。


安裝:
將所有檔案解壓到一個新的資料夾，資料夾下必須包含下列四個檔案：
- Concmd.exe (主程式)
- Concmd.ini (設定檔)
- b5fix.dat (繁體文字修正列表)
- gbfix.dat (簡體文字修正列表)

* Concmd 初次執行後會自動產生 6 個唯讀的索引檔,分別是:
  gb_1.ndx, gb_2.ndx, b5_1.ndx, b5_2.ndx, key1.ndx, key2.ndx


語法：　ConCmd [CodeIn] <CodeOut> [Quiet] [Backup] [Face] [Fix_UNN] <FileIn> [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個中文字時才用這功能，
　　　否則程式可能會錯誤判斷編碼。
　　　
  
<CodeOut>　（輸出編碼）

　　參數	輸出的編碼方法
　－－－－－－－－－－－－－－－－－－
　　/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 參數時的假設值
　－－－－－－－－－－－－－－－－－－－－
　　Big5	/f:t
　　GBK		/f:s
　　其它	/f:d

　＊　若果輸出編碼是 Big5  /f:s 參數無效

[Fix_UNN] （將統一碼數字記法&#xxxxx;轉成純文字）

　　參數	是否轉換統一碼數字記法
　－－－－－－－－－－－－－－－－－－－
　　/cu		　　轉換
　　省缺	　　不轉換

[Quiet] (顯示螢幕訊息。可以省略，預設值是否）

　　參數	是否顯示螢幕訊息
　－－－－－－－－－－－－－－－
　　/q		　　不顯示
　　省缺	　　顯示

[Backup] (來源檔備份，可省略）

　　參數	是否備份檔案
　－－－－－－－－－－－－－－－
　　/b		　　是
　　省缺	　　否

　　當輸出檔覆寫來源檔時指定是否將來源檔備份到同名但 file extension 是 .bak 的檔案。　　
   

<FileIn> 　（輸入檔案的路徑＋名稱，支援萬用字元符號）

[FileOut]　（輸出檔案的路徑＋名稱，支援萬用字元符號，可省略）


＊　在 FileOut 省略的情況下，轉碼結果會覆寫 FileIn

＊　若檔案名包含空白格，須要在檔名的前後兩端加入雙引號 (")


例體：

1) concmd /i:big5 /o:ule /f:s test1.txt test2.txt
   上述指令會將 test.txt 的內容由 Big5 轉為簡體中文的 Unicode-LE 編碼
   並將結果儲存到 test2.txt。

2) concmd /i:utf8 /o:big5 *.*
   上述指令將當前目錄的所有檔案由 utf-8 轉做 big5 碼，輸出結果會覆寫
   原來的檔案。

3) concmd /o:ule /f:t k*.txt "D:\Temp Dir\*.abc"
   上述指令會搜尋當前目錄內所有檔名首個字母是 k 及副檔名是 txt 的檔案，
   自動偵測它們的原來編碼，然後逐一轉換成為繁體 Unicode-LE， 並另存到
   'D:\Temp Dir' 目錄，新檔案名稱跟原來檔案相同但副檔名會改做 abc。



*** ConCmd.ini ***

使用者可以用文字編輯器去修改 ConCmd.ini 的設定

機碼		用途
－－－－－－－－－－－－－－－－－－－－－－－
Ignore		忽略的檔案類型（不准許轉換），各類型用萬用字元符號表示及用逗號分隔

HtmlType	HTML 檔案類型，用萬用字元符號表示及用逗號分隔

FixHtmlCharset	指定當轉換 Html 檔案時是否同時修正 Meta tag 內的編碼數值，0=否，1=是

AddBOMtoUTF8	當輸出是 UTF-8 時指定是否加 BOM （識別碼）到檔案的前端，0=否，1=是

＊　Agegbfix 及 Ageb5fix 是 gbfix.dat 及 b5fix.dat 的檔案日期，這兩個機碼的數值只供程式內部使用，若果被修改程式會自動修復。


*** b5fix.dat & gbfix.dat ***

這兩個列表跟 ConvertZ 所用的是一樣，若果要修改可以用 ConvertZ 內建的編輯器，亦可以用任何純文字編輯器直接進行修改，只須將新加的字串放在檔案結尾便可，格式是將轉換前/後的文字放在同一行及用逗號(半形)分隔，程式執行時會自動排序及重建索引檔。

修正列表的應用：
修正時程式從文件前端開始讀取內容，同時對照修正列表內有沒有相同字串（對照時以較長的字串為優先），若果發現便會進行替換及跳到該字串尾後繼續搜尋及轉換，全篇文章從首至尾只會讀取一次。

例子：

在詞庫內有:
AB,MM
ABC,NNN
CD,OO
DE,PP
FG,QQ

內文是：　ABCDACDEFGABADE
轉換後是：NNNDAOOEQQMMAPP

注意第一個出現的 AB 因為 ABC 的出現並無轉為 MM，而第一個出現的 CD 亦因為被 ABC 中斷而無轉為 OO，同樣道理，第一個出現的 DE 亦無轉為 PP。利用這規律技巧地添加新字串到“詞彙修正”的詞庫便可有效地提高準確率。

下面是一些簡體轉繁體的範例：

＜範例１＞

列表中只有：明了,明瞭 

修正前：已經天明了。眾人明了他的處境。 

修正後：已經天明瞭。眾人明瞭他的處境。 <-- 第一個「明了」轉錯了
　　　　　　　　︿錯

若列表中加入：天明,天明 （用“天明了,天明了”代替亦可，結果相同。）

轉換後：已經天明了。眾人明瞭他的處境。 <---- 全部正確 

＜範例２＞

列表中只有：十裡,十里
　　　　　　裡余,里餘

原句　：這裡余下三人。他們行了裡余路。離目的地還有十裡余。

轉換後：這里餘下三人。他們行了里餘路。離目的地還有十里余。
　　　　　︿︿　　　　　　　　　　　　　　　　　　　　︿

第一個“裡余”轉錯了，第三個“裡余”因為被“十裡”中斷了而沒有被轉換。

若在列表中再加入：裡余下,裡餘下
　　　　　　　　　十裡余,十里餘

轉換後會是：這裡餘下三人。他們行了里餘路。離目的地還有十里餘。 <--- 全部正確


－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－

版本紀錄:

ver 1.5
- 新增 /cu 參數，可以轉換統一碼數字記法（&#xxxxx;)做純文字。
- 對 /f 參數的用法作一些改。
- 更新對照表及詞彙修正列表。

ver 1.4
- 修正 unicode 簡繁轉換時一些字不能轉換的問題

ver 1.3
- 當輸入及輸出檔名相同時可以備份來源檔

ver 1.2 
- 加入自動偵測來源檔編碼的功能。
- 修正簡體中文轉成 Unicode/UTF-8 繁體中文時部份中文字不能轉換的問題。
- 當 ConCmd.ini 檔案或裡面任何機碼不存在時自動重新創建。

ver 1.1
- 修正在 Windows NT 下執行時會出現 AV Error 的問題

ver 1.0 
- first release

－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－


＊＊聲明＊＊
本程式僅供個人免費使用，在未經作者授權下不得將這個轉碼器合併
到其它軟件或作任何商業的用途。
作者概不負責用者因使用本程式而導致該電腦系統之任何故障。
若有任何意見及發現任何程式錯誤，請致函作者。


======================================================
　　作者：李志成
　　電郵：csli534@ctimail3.com
　　編址：alf-li.tripod.com
======================================================

