ページの先頭行へ戻る
Interstage Charset ManagerStandard Edition V9 使用手引書 拡張データ変換機能編
FUJITSU Software

2.7.2 文字コード変換カスタマイズ

文字コード変換をカスタマイズすることができます。

下記コマンドは、Charset Managerをインストールしたディレクトリ配下のwconv配下に存在します。

注意

  • ユーザーアカウント制御が有効な環境で本機能を利用する場合、コマンドプロンプトを「管理者として実行」で実行してください。

    ユーザーアカウント制御については、次のように設定されている状態を前提としています。

    • 「ユーザーアカウント制御」が有効

    • 「アプリがコンピューターに変更を加えようとする場合のみ通知する(既定)」に設定されている

    なお、「ユーザーアカウント制御」の有効/無効や、その動作に関連する設定については、各OSのヘルプでその影響などをよくご確認ください。

  • 管理者権限で実行しないと、以下の出力先ディレクトリが仮想化によって、ユーザごとの設定保存場所にリダイレクトされます。

    Charset Managerのインストール先ディレクトリ\wconv\table
    例:C:\Program Files\CharMGR\wconv\table

名前

wconvcust -  文字コード変換カスタマイズ

形式

wconvcust -jef jefcode
wconvcust -sjis sjiscode
wconvcust -cs1 codeset1 -cs2 codeset2 -c1 code1 -c2 code2 [-ov overwrite]
wconvcust -p ctlfile [-ov overwrite] [-repchar_usr1 repchar1 -repchar_usr2 repchar2]

機能説明

wconvcustコマンドは、JEFコード系との変換において、字形重視/領域重視のどちらで変換を行うかを選択できます。また、SJISコード系との変換において、SJISコード系をSJIS(MS)として変換を行うか、SJIS(R90)として変換を行うかを選択できます。

さらに、各コード系組み合わせにおけるコードの変換対応を直接変更することができます。また、変換対応定義を記述したファイルを指定して、コードの変換対応を変更することができます。

オプション

-jef jefcode

JEF コード系との変換において、字形重視で変換を行うか、領域重視で変換を行うかを指定します。jefcode には、以下のいずれかの値を指定します。

インストール時のデフォルトは、JEFAUGです。

JEFAUG:

字形重視

JEFCORE:

領域重視

-sjis sjiscode

SJISコード系との変換において、SJISコード系をSJIS(MS)として変換を行うか、SJIS(R90)として変換を行うかを指定します。sjiscodeには、以下のいずれかの値を指定します。

インストール時のデフォルトは、SJIS(MS)です。

SJISMS:

SJIS(MS)

SJISR90:

SJIS(R90)

-cs1 codeset1

コードの対応定義を変更するコード系です。

-cs2 codeset2

コードの対応定義を変更するコード系です。

codeset1とcodeset2の組み合わせにおける文字コード変換の変換対応を変更します。

-ov overwrite

上書きをするかどうかを指定します。

変換元の文字コードに対応する変換先文字コードがすでに定義されている場合、その文字コードの対応定義を変更するかどうかを指定します。以下のいずれかの値を指定します。

デフォルトは、0(上書きする)です。

0:

上書きする

1:

上書きしない

-p ctlfile

ctlfile には、変換対応定義を記述した制御文ファイルを、絶対パスまたは相対パスで指定します。文字コード変換カスタマイズ機能は、ctlfileで指定された制御文ファイルに従ってカスタマイズを行います。ctlfileがない場合は、エラーになります。

-repchar_usr1 repchar1
-repchar_usr2 repchar2

CDS_USR1とCDS_USR2のカスタマイズを行う場合に有効となります。
CDS_USR1とCDS_USR2については、“2.2 文字コードの種類”を参照してください。
使い方の詳細は、“付録B 他社ベンダ文字コード系の変換”の“2)文字コード変換テーブルを作成する”を参照してください。

オペランド

-c1 code1

対応を定義するcodeset1のコードです。

-c2 code2

対応を定義するcodeset2のコードです。codeset1のcode1とcodeset2のcode2の対応を定義します。

codeset1からcodeset2への変換において、code1が入力されたらcode2に変換します。

逆に、codeset2からcodeset1への変換において、code2 が入力されたらcode1に変換します。

ctlfileファイルの書式

変換対応定義を記述するファイルの書式です。すべてASCIIコードの文字列で記述します。

1 カラム目は制御記号欄とし、2 カラム目から72カラム目に制御文、または文字コード対応定義式を記述します。1 カラム目には、次の制御記号のうち、いずれか1つを指定します。

' 'ブランク:

この行を制御文または文字コード対応定義データとして扱います。

'*':

この行をコメントとして扱います。

以下の制御文が必要となります。

DEFCDPR:

入力レコード書式を指定します。

DEFCDPR 制御文は、文字コード変換対応を変更するコード系を定義し、本制御文に続く文字コード対応定義データに示される対応を、文字コード変換表に定義するものです。

本制御文の記述は、以下の形式とします。

本制御文の直後には、文字コード対応定義データが指定されていなくてはなりません。

文字コード対応定義データは、DEFCDPR制御文の次のレコードから始まり、次の制御文の直前のレコードまでを認識します。次の制御文がない場合は、最終レコードまでを文字コード対応定義データとして認識します。

文字コード系の種類1に対応する文字コードの指定は、単一指定と範囲指定が可能です。

文字コード対応定義データの記述は、以下の形式とします。

文字コード1には、変換対応を対応付ける文字コード系の、種類1の文字コード1文字分を16進で指定します。

文字コード2には、変換対応を対応付ける文字コード系の、種類2の文字コード1文字分を16進で指定します。

先頭文字コード-最終文字コードは、変換対応を対応付ける文字コードが連続した範囲である場合、その範囲の先頭文字コードと最終文字コードをハイフン(-)で結んで指定します。この場合、変換先の文字コードは、文字コード2を先頭とする連続した文字コードが、指定範囲にある文字数だけ対応関係が定義されます。このとき、変換先コードの1バイト目が同じとなる範囲で区切って指定をしてください。

なお、先頭文字コード≦最終文字コードでなくてはなりません。

また、ハイフン(-)およびコロン(:)の前後に空白を入れることはできないので注意してください。

注意

  • UTF8のコードをカスタマイズする場合、文字コード系の種類にはCDS_UCS2を指定し、文字コードもUCS2のコード値で指定してください。

  • 文字コード対応定義データに指定可能な文字コードは、各文字コード系の未定義文字を除いた範囲です。未定義文字を指定してカスタマイズを行っても、無視され、カスタマイズされません。

  • 文字コードの桁数は、各文字コードのバイト数にしたがい、以下のように記載してください。

    • 1バイト :2桁

    • 2バイト :4桁

    • 3バイト :6桁

    各コード系のバイト数については、“1.2.2 文字コード変換”の“文字コード項目のデータ型”を参照してください。

JEFとシフトJISの双方向変換の例

DEFCDPR CDS_SJIS CDS_JASCII
  FA40:77EB 
  FA41:77EC 
  FA42:77ED 

使用例

次の例は、JEFからSJISへの変換において、JEFの0x77EBをSJISの0xFA40へ変換するように、文字コード変換対応を変更します。

また、SJISからJEFへの変換において、SJISの0xFA40をJEFの0x77EBへ変換するように、文字コード変換対応を変更します。

example% wconvcust -cs1 CDS_JASCII -cs2 CDS_SJIS -c1 77EB -c2 FA40 -ov 0

終了ステータス

以下の終了ステータスが返されます。

0:

正常終了

0以外:

エラーが発生した

エラーメッセージ

表2.2 wconvcustコマンドのエラーメッセージ

1

usage: wconvcust -cs1 codeset1-cs2 codeset2 -c1 code1 -c2 code2 [-ov overwrite]

wconvcust -p ctlfile [-ov overwrite] [-repchar_usr1 repchar1 -repchar_usr2 repchar2]

wconvcust -jef jeftype

wconvcust -sjis sjistype

【意味】

パラメタエラーです。

【対処】

パラメタを見直してください。

2

wconvcust: installation incomplete

【意味】

環境の取得に失敗しました。

【対処】

インストールに失敗している可能性があります。再インストールしてください。

3

Not supported

【意味】

以下のいずれかです。

  • 指定された変換元コード系、または変換先コード系は、サポートしていません。

  • 指定された変換元コード系と変換先コード系の組み合わせは、サポートしていません。

【対処】

変換元コード系と変換先コード系を見直してください。

4

Not enough memory

【意味】

メモリが不足しました。

【対処】

後ほど処理してよいアプリケーションを終了させてから、再度実行してください。

5

Permission denied

【意味】

変換テーブルまたは制御文ファイルのアクセスが許可されていません。

【対処】

コマンドを実行するユーザの権限について、以下の観点で確認し、それぞれの対処を行ってください。

  • 変換テーブルに書き込み権限があるか

→ない場合、変換テーブルに書き込み権限があるユーザでコマンドを実行してください。

  • 制御文ファイルに読み込み権限があるか

→ない場合、制御文ファイルに読み込み権限があるユーザでコマンドを実行するか、実行するユーザに対して制御文ファイルの読み込み権限を付加してください。

6

Table busy

【意味】

他のアプリケーションで、変換テーブルまたは制御文ファイルを使用中です。

【対処】

しばらく経ってからやり直してください。

7

invalid request code

【意味】

制御文ファイルに指定されたコードが不正です。

【対処】

制御文ファイルを見直してください。

8

invalid option

【意味】

指定された制御文ファイルの書式が誤っています。

【対処】

"ctlfileファイルの書式"を参照して、制御文ファイルを確認してください。

9

wconvcust: (errorcode) : error.

【意味】

内部エラーです。

【対処】

errorcodeが"5"の場合、制御文(コメント行は除く)の中にASCIIコードでない文字を使用している可能性があります。制御文はASCIIコードの文字列で記述してください。
上記以外の場合は、弊社技術員にご連絡ください。その際に、errorcode、コマンドライン、コマンドラインで指定した制御文ファイル(ctlfileファイル)を送付してください。

参考

文字コードの優先順位

拡張データ変換機能を使用して、文字コード変換を行う場合の変換の優先順位は、制御文ファイルで定義する順番を変えることで、変更することが可能です。

N対1の変換を定義して、N個側への変換を行う場合、最後に定義された変換対応が有効になります。

外字を変換する方法

拡張データ変換機能をそのまま使用したときに、外字を変換できない場合があります。その場合は、文字コード変換カスタマイズ機能を使用してコードの変換対応を変更することで、変換することが可能となります。

文字コード変換テーブルを初期状態にする方法

文字コード変換テーブルを初期状態に戻すには、以下のファイルをインストール媒体(CD)のWindow\wconv\tableから、Charset Managerインストールディレクトリ\wconv\table配下にコピーしてください。コピー後、ファイルのプロパティで読み取り属性のチェックを外してください。

ec2ja

ec2jc

ec2ms

ec2r9

ibmjef

ibmjips

ibmkeis

ibmms

ibms90

ibmucs2

ja2ec

ja2ms

ja2r9

ja2s9

ja2u9

jc2ec

jc2ms

jc2r9

jc2s9

jc2u9

jipsjef

jipsms

jipss90

jipsucs2

keisjef

keisjips

keisms

keiss90

keisucs2

ms2ec

ms2ja

ms2jc

ms2s9

ms2u2

ms2u2le

ms2u9

r92ec

r92ja

r92jc

r92s9

r92u2

r92u2le

r92u9

s92ja

s92jc

s92ms

s92r9

u22ms

u22r9

u2le2ms

u2le2r9

u92ja

u92jc

u92ms

u92r9

文字コードの設定値を確認する方法

文字コードの設定値がどうなっているか(どの文字コードへ変換されるか)は、実際に変換することで確認できます。

文字コード変換テーブルが初期状態になったかどうかは、カスタマイズした文字コードを変換し、カスタマイズされた状態になっていないことで、ご確認ください。

コード系の変換例として、KEISからJEFに変換後、JEFからKEISに変換する方法を以下に示します。

表2.3 優先順位変更による変換結果の違い

制御文Aでの変換

制御文Bでの変換

制御文

DEFCDPR CDS_USR1 CDS_USR2(※)

5bd9:b5c8

b5c8:b5c8

DEFCDPR CDS_USR1 CDS_USR2(※)

b5c8:b5c8

5bd9:b5c8

変換(1)

(KEIS→JEF)

5bd9 → b5c8

b5c8 → b5c8

b5c8 → b5c8

5bd9 → b5c8

変換(2)

(JEF→KEIS)

b5c8 → b5c8

b5c8 → 5bd9

※ USR1:KEIS、USR2:JEF

制御文ファイルを、“制御文Bでの変換”のように変えることで、JEFのb5c8はKEISの5bd9に変換されるようになります。他のコード系を変換する場合も、同様の手順で優先順位の変更を行うことができます。

注意

文字コード変換カスタマイズ機能は、コマンドのみです。関数APIはありません。(プログラムから直接呼び出すことはできません。)