'\" te .\" Copyright (c) 2001, Sun Microsystems, Inc. All Rights Reserved .TH geniconvtbl 1 "2001 年 11 月 30 日" "SunOS 5.11" "用户命令" .SH 名称 geniconvtbl \- 生成 iconv 代码转换表 .SH 用法概要 .LP .nf \fBgeniconvtbl\fR [\fB-fnq\fR] [\fB-p\fR \fIpreprocessor\fR] [\fB-W\fR \fIarg\fR] [\fB-D\fR\fIname\fR] [\fB-D\fR\fIname\fR=\fIdef\fR] [\fB-I\fR\fIdirectory\fR] [\fB-U\fR\fIname\fR] [\fIinfile\fR]... .fi .SH 描述 .sp .LP \fBgeniconvtbl\fR 实用程序接受在纯文本文件中定义的代码转换规则并编写可用于支持用户定义的 \fBiconv\fR 代码转换的代码转换二进制表文件(有关 iconv 代码转换的更多详细信息,请参见 \fBiconv\fR(1) 和 \fBiconv\fR(3C))。 .SH 选项 .sp .LP 支持以下选项: .sp .ne 2 .mk .na \fB\fB-f\fR\fR .ad .RS 19n .rt 如果输出文件已存在,则覆盖该输出文件。 .RE .sp .ne 2 .mk .na \fB\fB-n\fR\fR .ad .RS 19n .rt 不生成输出文件。在检查输入文件的内容时这比较有用。 .RE .sp .ne 2 .mk .na \fB\fB-p\fR \fIpreprocessor\fR\fR .ad .RS 19n .rt 使用指定的 \fIpreprocessor\fR 而不是使用缺省的预处理程序 \fB/usr/lib/cpp\fR。 .RE .sp .ne 2 .mk .na \fB\fB-q\fR\fR .ad .RS 19n .rt 静默选项。此选项抑制警告和错误消息。 .RE .sp .ne 2 .mk .na \fB\fB-W\fR \fIarg\fR\fR .ad .RS 19n .rt 将参数 \fIarg\fR 传递到预处理程序。如果多次指定了此选项,会将所有参数传递到预处理程序。 .RE .sp .ne 2 .mk .na \fB\fB-D\fR\fIname\fR\fR .ad .br .na \fB\fB-D\fR\fIname\fR=\fIdef\fR\fR .ad .br .na \fB\fB-I\fR\fIdirectory\fR\fR .ad .br .na \fB\fB-U\fR\fIname\fR\fR .ad .RS 19n .rt \fBgeniconvtbl\fR 可识别这些选项并将它们及其参数传递到预处理程序。 .RE .SH 操作数 .sp .LP 支持下列操作数: .sp .ne 2 .mk .na \fB\fIinfile\fR\fR .ad .RS 10n .rt 输入文件的路径名称。如果未指定输入文件,\fBgeniconvtbl\fR 将从标准输入流中读取输入。如果需要,用户可以指定多个输入文件。 .RE .SH 输出 .sp .LP 如果从标准输入流中读取输入,\fBgeniconvtbl\fR 会将输出写入到标准输出流中。如果指定了一个或多个输入文件,\fBgeniconvtbl\fR 会从每个输入文件中读取输入并将输出写入到相应的输出文件中。每个输出文件名称将与相应的输入文件相同,且文件名后缀为 \fB\&.bt\fR。 .sp .LP 在使用 \fBiconv\fR(1) 和 \fBiconv\fR(3C) 中的代码转换之前,必须将生成的输出文件移动到以下目录中: .sp .LP \fB/usr/lib/iconv/geniconvtbl/binarytables/\fR .sp .LP 输出文件名称应该以一个或多个可打印的 \fBASCII\fR 字符开头作为 "\fBfromcode\fR" 名称,后跟一个百分比字符 (\fB%\fR),然后跟有一个或多个可打印的 \fBASCII\fR 字符作为 "\fBtocode\fR" 名称,最后以后缀 "\fB\&.bt\fR" 结尾。"\fBfromcode\fR" 和 "\fBtocode\fR" 名称用于标识 \fBiconv\fR(1) 和 \fBiconv_open\fR(3C) 中的 \fBiconv\fR 代码转换。应将正确命名的输出文件放置在 \fB/usr/lib/iconv/geniconvtbl/binarytables/\fR 目录中。 .SH 示例 .LP \fB示例 1 \fR生成 iconv 代码转换二进制表 .sp .LP 以下示例生成输出文件名称为 \fBconvertA2B.bt\fR 的代码转换二进制表: .sp .in +2 .nf example% \fBgeniconvtbl convertA2B\fR .fi .in -2 .sp .LP \fB示例 2 \fR生成多个 iconv 代码转换二进制表 .sp .LP 以下示例生成两个代码转换二进制表,其输出文件分别为 \fBtest1.bt\fR 和 \fBtest2.bt\fR: .sp .in +2 .nf example% \fBgeniconvtbl test1 test2\fR .fi .in -2 .sp .LP \fB示例 3 \fR使用另一个预处理程序 .sp .LP 在指定的预处理程序处理了输入文件后,以下示例会生成代码转换二进制表: .sp .in +2 .nf example% \fBgeniconvtbl -p /opt/SUNWspro/bin/cc -W -E convertB2A\fR .fi .in -2 .sp .LP \fB示例 4 \fR放置二进制表 .sp .LP 要使用在上面的第一个示例中创建的二进制表作为 "fromcode" \fBABC\fR 到 "tocode" \fBDEF\fR 的转换引擎,首先需成为超级用户,然后重命名该二进制表,并将其按如下方式放置: .sp .in +2 .nf example# \fBmv convertA2B.bt \e /usr/lib/iconv/geniconvtbl/binarytables/ABC%DEF.bt\fR .fi .in -2 .sp .LP \fB示例 5 \fR提供修改的 ISO8859-1 到 UTF-8 代码转换 .sp .LP 编写定义了代码转换的 \fBgeniconvtbl\fR 源文件。例如,您可以将 \fB/usr/lib/iconv/geniconvtbl/srcs/ISO8859-1_to_UTF-8.src\fR 复制到您的目录中,然后在该源文件中进行必要的更改。在进行修改后,生成二进制表: .sp .in +2 .nf example% \fBgeniconvtbl ISO8859-1_to_UTF-8.src\fR .fi .in -2 .sp .sp .LP 作为超级用户,将生成的具有唯一名称的二进制表放置在 \fBiconv_open\fR(3C) 可以在其中找到该二进制表的系统目录中: .sp .in +2 .nf example \fBsu\fR Password: example% \fBcp ISO8859-1_to_UTF-8.bt \e /usr/lib/iconv/geniconvtbl/binarytables/my-iso-8859-1%utf-8.bt\fR .fi .in -2 .sp .sp .LP 之后,您可以执行 \fBiconv\fR 代码转换。例如: .sp .in +2 .nf example% \fBiconv -f my-iso-8859-1 -t utf-8 testfile.txt\fR .fi .in -2 .sp .SH 环境变量 .sp .LP 有关影响 \fBgeniconvtbl\fR 执行的环境变量 \fBLANG\fR 和 \fBLC_CTYPE\fR 的说明,请参见 \fBenviron\fR(5)。 .SH 退出状态 .sp .LP 将返回以下退出值: .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 5n .rt 没有发生任何错误,输出文件已成功创建。 .RE .sp .ne 2 .mk .na \fB\fB1\fR\fR .ad .RS 5n .rt 未正确使用命令行选项,或指定了未知的命令行选项。 .RE .sp .ne 2 .mk .na \fB\fB2\fR\fR .ad .RS 5n .rt 指定的输入或输出文件无效。 .RE .sp .ne 2 .mk .na \fB\fB3\fR\fR .ad .RS 5n .rt 输入文件中的转换规则未正确定义。 .RE .sp .ne 2 .mk .na \fB\fB4\fR\fR .ad .RS 5n .rt 已经达到了输入文件的转换规则限制。请参见 \fBgeniconvtbl\fR(4) 的“附注”部分。 .RE .sp .ne 2 .mk .na \fB\fB5\fR\fR .ad .RS 5n .rt 没有更多的系统资源错误。 .RE .sp .ne 2 .mk .na \fB\fB6\fR\fR .ad .RS 5n .rt 内部错误。 .RE .SH 文件 .sp .ne 2 .mk .na \fB\fB/usr/lib/iconv/geniconvtbl/binarytables/*.bt\fR\fR .ad .sp .6 .RS 4n 转换二进制表 .RE .sp .ne 2 .mk .na \fB\fB/usr/lib/iconv/geniconvtbl/srcs/*\fR\fR .ad .sp .6 .RS 4n 供用户参考的转换源文件 .RE .SH 属性 .sp .LP 有关下列属性的说明,请参见 \fBattributes\fR(5): .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性类型属性值 _ 可用性system/core-os .TE .SH 另请参见 .sp .LP \fBcpp\fR(1)、\fBiconv\fR(1)、\fBiconv\fR(3C)、\fBiconv_close\fR(3C)、\fBiconv_open\fR(3C)、\fBgeniconvtbl\fR(4)、\fBattributes\fR(5)、\fBenviron\fR(5)、\fBiconv\fR(5) .sp .LP 《\fISolaris Internationalization Guide for Developers\fR》 .SH 附注 .sp .LP 所生成的并正确放置的输出文件 (\fB/usr/lib/iconv/geniconvtbl/binarytables/*.bt\fR) 可用于 32 位和 64 位环境。