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> [Face] <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		　　不显示
　　省缺	　　显示

<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
======================================================