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。利用这规律技巧地添加新字串到“词汇修正”的词库便可有效地提高准确率。
下面是一些簡體轉繁體的範例:
<范例1>
列表中只有:明了,明瞭
修正前:已經天明了。眾人明了他的處境。
修正后:已經天明瞭。眾人明瞭他的處境。 <-- 第一個「明了」轉錯了
︿錯
若列表中加入:天明,天明 (用“天明了,天明了”代替亦可,結果相同。)
转换后:已經天明了。眾人明瞭他的處境。 <--- 全部正确
<范例2>
列表中只有:十裡,十里
裡余,里餘
修正前:這裡余下三人。他們行了裡余路。離目的地還有十裡余。
修正后:這里餘下三人。他們行了里餘路。離目的地還有十里余。
︿︿ ︿
第一个“裡余”转错了,第三个“裡余”因为被“十裡”中断了而没有被转换。
若在列表中再加入:裡余下,裡餘下
十裡余,十里餘
修正后会是:這裡餘下三人。他們行了里餘路。離目的地還有十里餘。 <--- 全部正确
----------------------------------
版本纪录:
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
----------------------------------
**声明**
本程式仅供个人免费使用,在未经作者授权下不得将这个转码器合并
到其它软件或作任何商业的用途。
作者概不负责用者因使用本程式而导致该电脑系统之任何故障。
若有任何意见及发现任何程式错误,请致函作者。
======================================================
作者:李志成
电邮:[email]csli534@ctimail3.com[/email]
编址:alf-li.tripod.com
======================================================
欢迎光临 批处理之家 (http://bbs.bathome.net/) | Powered by Discuz! 7.2 |