Pages

2014年7月18日金曜日

帳票構築ノウハウ!帳票マイグレーションにまつわるお話 
~外字の移行2~

こんにちは。今週の帳票ノウハウは小柳が担当します。

6月の記事でも触れましたが、今回も外字のお話をしたいと思います。

まず、今回は一般的なお話から。
一般に外字には以下の2種類が存在します。

・ユーザ定義文字
・機種依存文字

ユーザ定義文字は、その名の通り利用者が独自に定義した外字です。PCでユーザ定義外字を定義して、ユーザ定義外字を使って文章を作り、他の人にメールで送ってもメールを受け取った人のPCに外字が定義されていないと文字化けして読むことができない事象が発生します。

では、機種依存文字はどのようなものかご存知ですか?

身近な例で言えば、携帯電話の絵文字がこれにあたります。過去に違うメーカー
の携帯からメールを受け取ったが、何やら記号のようなものが表示されて、ちゃんと読めなかった経験はありませんか?携帯からPCにメール送信しても同じような事象が発生してしまいます。



これは絵文字が携帯電話の「機種依存文字」だから発生する事象なのです。今では携帯メーカーが、お互いの機種依存文字を変換して見られるようにしていたり、PCに絵文字フォントを入れて解消できるようになってきましたが、このPCに絵文字フォントを入れる行為が、外字を「定義」する行為なわけです。

さて、この外字の問題。帳票の世界ではたびたび問題となることがあります。

機種依存文字には、メーカーが作ったメーカー定義文字もあったりします。
Windowsの世界では、これをカバーするためにIBM拡張文字やNEC拡張文字があって過去にメーカーが定義した機種依存文字をカバーできるようにしていますが、iOS系ではもちろん定義されていないのでWindowsと同じように見ることができません。

メインフレームからのマイグレーションでは、長年利用していることもあり様々な外字の問題が発生してしまうことがあります。特に官公庁や銀行の業務では、正確に名前を表示する必要があるため、高橋さんの「高」や渡辺さんの「辺」など結構特殊な外字を多く利用しなければならないことがあります。このような場合は、お客様も外字の利用を認識されているのでまだ良いのですが、機種依存文字を外字だと思っていないお客様の場合Windows環境でメインフレーム時代と同じ帳票を印刷しようとして文字化けに… となって嫌な汗をかくこともあります。

メインフレームでは、非常に多くの外字を定義できます。しかしWindowsで多く使われているShift-JISはメインフレームほどの外字を定義できません。現在のWindowsでの標準フォントで使用しているUNICODEは、Shift-JISよりも多くの外字を利用できます。

これで解決!! とは残念ながらならない場合もあって、メインフレームやShift-JISでは外字は2byte文字で定義されますが、UNICODEの場合は2byte以上で定義されるものもあり、単純な置き換えでは対応できない場合も多々あります。

私が担当した案件で、メインフレーム上で定義していた8000字以上の外字をWindows環境に移行する必要がありました。メインフレームメーカーの変換ツールでWindowsで認識できる外字に変換できたのですが、これがUNICODE。しかし印刷する製品はShift-JISにしか対応していない…

結局、UNICODEShift-JISbyte数の違いを運用ルールで抑えて、カスタマイズプログラムを駆使してなんとか乗り切って無事に本番を迎えましたが、調整に非常に労力を費やすことになってしまいました。

他にも、プリンタに外字を登録してあってプリンタ変えたら印刷できなくなるといった事象も起こったりします。

レガシーマイグレーションの時だけでなく、オープン環境での環境変更の場合にも、この外字の問題は起こることが多々あります。システム移行の際に外字の問題で後悔しないために、抑えておきたいポイントについては、また別の機会にご紹介します。

0 件のコメント:

コメントを投稿