漢字コードの変換

By 神居 - Posted: 2011/06/30 Last updated: 2012/04/01 - Leave a Comment
印刷用ページの表示 印刷用ページの表示

日本語文字コードの変換

1バイトのEBCDICコードの場合ではMVSとMSPは同じ、MVSとVOS3でもほぼ同じである。日立の場合は同じEBCDICでもEBCDIKという若干異なる文字コード表が使用されるが、EBCDICとの違いは一部の記号文字、例えば£や!が、〔と〕(鍵カッコ)になっている点である。 とはいえ、%や@、+?=などメジャーな記号は同じだし、実用上は同じ文字コードと扱っても問題ないであろう。

2バイトの文字コードである、漢字などの全角文字に関してはMVSで使用するIBM漢字コードと、富士通のJEFおよび日立のKEISでは異なるコード体系となっている。海外製のISVソフトウェアでは漢字が使われることはないが、日本で販売するために英語パネルなどを日本語化したような場合に、それを富士通や日立のシステムに移植する際に文字コードの変換が必要になる。

文字コードの変換方法としては、プログラム内の文字列データを変換する方法(静的変換)と、プログラム実行時にパネルやメッセージなどを表示する際に変換する方法(動的変換)がある。どちらの変換であってもIBM、富士通、日立の各社のコードを相互に変換するための基礎となる文字コード表が必要になる。動的変換の場合、一部の文字コード間では計算による変換もできる(例えばJISの第1、第2水準文字はJISコードにx8080を加えるとJEFコードになるなど)のだが、完全ではないし、水準外の文字やユーザー定義の外字などは、変換表に頼らざるを得ない。


文字コード変換表の入手・作成

まだPCもUNIXも企業の商用で使われておらず、TCP/IPなども一般化していなかったメインフレーム全盛の頃は、各社から出ていた文字コード表を頼りに、変換用のテーブルを作ったりしていたが、現在ではTCP/IPのユーティリティーなどで簡単に変換表を作ることができるようになっている。

なお、日立のKEISコードと富士通のJEFコードは、JIS第1、第2水準の部分に関しては同じである。なので一般的な文字については同じテーブルを流用できるが、それ以外の文字については異なるコードであるとして考える必要がある。


企業が主に使う商用コンピューターがメインフレームだけの頃は、文字コードの変換は自力でやるしかなかったが、オープン系のシステムが主流となりTCP/IPによる相互接続が一般的になった現在では、メインフレームとPCやUNIX系システム間で必要な文字コード変換は、TCPなどのネットワーク・サブシステムに標準実装(例えばFTPでのコード変換)されていたり、メーカーなどからもサポート・プログラムが提供されたりしている。例えばIBMは、バッチやCICSプログラムから利用できるホストコード変換プログラムを提供している。他にもz/OSにはUnicodeサービスというものもある。なのでメインフレームとオープン系の相互変換なら自力でしくみを作らなくても何とでもなるようになった。しかしIBMと富士通/日立のメインフレーム同士の間での変換が必要なら、一旦UnicodeやJISコードなどに変換してメーカー提供のサービスを利用するか、直接相手のコードへの変換を行う場合はやはり変換表を作る必要があろう。また、変換表を作るにしてもコード表を見て手作業で、よりは、利用できる物は何でも利用してなるべく作り込む手間を減らすようにする方がよい。


文字コードは、OSのAPIや内部仕様とは異なる物ではあるが、ソフトウェア製品が日本語文字を扱うのであれば、MVSとMSP/VOS3の間では非互換となる大きな違いのひとつである。

Posted in ポーティング、ローカライズ手法 • • Top Of Page