この章では,DEC漢字コード変換ユーティリティ (KCONVERT) について説明します。
DEC漢字セットとASCII文字セットで記述された日本語文書内の特定の漢字コードを, 変換指定テーブルにしたがって変換します。日本語OpenVMSオペレーティング・ システムではDEC漢字1978年版とDEC漢字1983年版間の変換指定テーブルが提供されます。 変換指定テーブルはエディタなどを用いて利用者が作成/変更することもできます。
漢字コード変換ユーティリティ(KCODE)は他社の漢字コード系との変換を行いますが, このDEC漢字コード変換ユーティリティ(KCONVERT)は,入力ファイルも出力ファイルも DEC漢字コード系であることを前提にしています。
DCLコマンドですぐに利用できるユーティリティと, プログラムから呼びだすルーチンの2種類があります。
この節では,KCONVERTコマンドの形式,パラメータ,修飾子について説明します。
DEC漢字コード変換ユーティリティを起動します。
KCONVERT/TABLE =変換テーブル・ファイル指定[/修飾子] 入力ファイル指定 [出力ファイル指定]
START: i | 変換・検査の開始位置をバイト・オフセットで指定します。 レコードの先頭は1です。省略時設定値は1です。 |
END: j | 変換・検査の終了位置をバイト・オフセットで指定します。 LENGTH と同時には指定できません。ENDもLENGTHも指定されていない場合は, レコードの最後まで変換・検査を行います。 |
LENGTH:k | 変換・検査する範囲をSTARTで指定した位置からのバイト数で指定します。 ENDと同時には指定できません。ENDもLENGTHも指定されていな場合は, レコードの最後まで変換・検査を行います。 |
KANJI | 半角カタカナ混じりの文章の場合, 最初が漢字で始まっていることを指定します。 |
KATAKANA | 半角カタカナ混じりの文章の場合, 最初が半角カタカナで始まっていることを指定します。 KANJIとKATAKANAのいずれの指定もない場合は, /MODE修飾子で指定された文字で開始しているものとみなします。 |
KANJI | 漢字で始まる |
KATAKANA | 半角カタカナで始まる |
KCONVERTユーティリティは,文書中にエスケープ・シーケンス(LS2R, LS3R) があると自動的に
LS2R (〈ESC〉 } ).....この制御コード以後は半角カタカナと みなし,次にLS3Rがみつかるまで 変換・検査を行わない LS3R (〈ESC〉 | ).....この制御コード以後は漢字とみなし, 変換・検査を行う
- 注意
- 〈ESC〉は16進数の1B,‘ } ’は7D,|は7Cです。
として処理し,漢字の部分のみを変換・検査の対象にします。
この場合は漢字で始まっていますから/MODE修飾子を省略できます。
$ KCONVERT/TABLE=... Input_file Output_file
この場合は半角カタカナで始まっていることを/MODE=KATAKANAで指定します。
$ KCONVERT/MODE=KATAKANA/TABLE=... Input_file Output_file
または
この場合は/MODE=KANJIを指定しても/MODE=KATAKANAを指定しても, 変換・検査の結果は同じですから,/MODEの指定は不要です。
$ KCONVERT/TABLE=... Input_file Output_file
START:i | 変換・検査する開始レコード番号を指定します。 最初のレコード番号は1です。省略時設定値は1です。 |
END:j | 変換・検査する終了レコード番号を指定します。LENGTHと同時には指定できません。 ENDもLENGTHも指定されていないときは,最後のレコードまで変換・検査を行います。 |
LENGTH:k | 変換・検査するレコード数を指定します。 ENDと同時には指定できません。ENDもLENGTHも指定されていないときは, 最後のレコードまで変換・検査を行います。 |
KANJI | 半角カタカナ混じりの文章のとき, 最初が漢字で始まっていることを指定します。 |
KATAKANA | 半角カタカナ混じりの文章のとき, 最初が半角カタカナで始まっていることを指定します。KANJIと KATAKANAのいずれの指定も無いときは, /MODE修飾子で指定された文字で開始しているものとみなします。 |
$ KCONVERT/TABLE=JSY$SYSTEM:KCV78TO83.TABLE Input_file Output_file
$ KCONVERT/TABLE=JSY$SYSTEM:KCV83TO78.TABLE Input_file Output_file
$ KCONVERT/TABLE=CONVERT.TABLE Input_file Output_file
変換テーブルの形式については 第6.3節を参照してください。
変換・検査で使用する変換指定テーブルの形式を説明します。 利用者定義による漢字コード変換を行う場合は, KCONVERTユーティリティを使用する前に, 変換テーブルを日本語エディタなどで作成します。
! KCONVERT 変換指定テーブルの例 ! C XB1B1 XC1C1 ! 臼 を 疏 に変換する C XB1B2 XC1C2 ! 渦 を 疎 に変換する I XD1D1 !冪 があれば通知する ................... ................... END !変換指定テーブル 終り
半角の感嘆符'!'で始まる行はコメント行です。変換・検査には使用されません。
先頭が半角の'C'で始まる行は変換指定になります。
XB0A1 ...... 亜 J1601 ...... 亜 XA2A1 ...... ◆ J0201 ...... ◆
- 注意
- 《区点番号による漢字コードの記述の制限事項》
DEC漢字1区1点の文字コードはJ0101と記述します。拡張領域の文字コードは 'J1'で始まる4けたの区点番号で記述します。DEC拡張漢字1区1点の文字は先頭に 1をつけJ10101と記述でき,これはXA121と同じ文字コードを示します。
先頭が'END'で始まる行までが変換テーブルとして扱われます。 この行以降は何が記述されていても無視されます。
使用例として,DEC漢字1978年版漢字コードと DEC漢字1983年版の相互変換方法を説明します。
DEC漢字1978年版のファイルをDEC漢字1983年版に変換する場合は, 変換テーブルとして
JSY$SYSTEM:KCV78TO83.TABLE
を用います。このテーブルでは,
が指定されています。
$ KCONVERT/TABLE=JSY$SYSTEM:KCV78TO83.TABLE[/修飾子] 入力ファイル名 [出力ファイル名]
とします。
DEC漢字1983年版の漢字コードをDEC漢字1978年版に変換する場合は, 変換テーブルとして
JSY$SYSTEM:KCV83TO78.TABLE
を用います。このテーブルでは,
が指定されています。
$ KCONVERT/TABLE=JSY$SYSTEM:KCV83TO78.TABLE[/修飾子] 入力ファイル名 [出力ファイル名]とします。
日本語OpenVMSが標準として提供するのは上の2つのテーブルのみです。 変換を罫線コードに限定するなど変換内容を変える場合は, 新たに変換テーブルを作成してください。
KCONVERTユーティリティが使用しているルーチンがランタイム・ライブラリとして JSY$LIBRARY:JSYLIB.OLB に入っています。また,ステータス定義ファイルとしては JSY$SYSTEM:JSYDEF.* (*はFOR,Hなど各言語用)があります。 KCONVERTユーティリティでは処理できない場合は, コード変換ルーチンを用いて専用の変換プログラムを作成してください。
各ルーチンについては 『日本語ライブラリ 利用者の手引き』を参照してください。