5250エミュレータ

54. Unicodeを5250エミュレータで表示すると

表示装置ファイルの一部にCCSIDキー・ワードを使えば
CCSID(1200)のようにしてDSPFのフィールドにUnicodeを
指定することができることを前に説明した。
同時に

Unicodeでは漢字は3バイト必要である

ことも説明した。


CCSID(1200)を使わない場合はDSPFの表示は

であるが
CCSID(1200)を次のように指定してみると
例えば

  :
0070.00       *( データの記述 )                                       
0071.00      A                                  5  2' 得意先名 '      
0072.00      A            TKNMJ         32G  B  5 17TEXT(' 得意先名 ')
0073.00      A                                      CCSID(1200)       
0074.00      A                                  6  2' 略名 '          
0075.00      A            TKNM          12G  B  6 17TEXT(' 略名 ')    
0076.00      A                                      CCSID(1200)       
0077.00      A                                  7  2' 電話番号 ' 
 :

のような具合である。

このDSPFを5250エミュレータ(IBM ACS)で表示されてみると

のようになる。

得意先名と略名が入力する文字数は同じであるのに占有域だけが冗長になっていることがよくわかるだろう。

このようにフィールドの占有域は5026のときにくらべて約3倍の長さ
必要になってしまう。
これは先にも説明したように幹事がCCSID5026では2バイトでよかったものを

Unicodeでは3バイトが必要になるからである

このような画面を果たして好んで使う人がいるだろうか?
それゆえデータ・ベースはDSPFのUnicode指定はあくまで参考程度であって
IBM iにもUnicodeを指定する機能がありますといった程度である。
ある雑誌の投稿でDSPFやデータ・ベースのフィールドに
CCSID(1200)を指定することができるといった記事があったが
それはIBM マニュアルを単に書き写しただけの記事であって
実際にこのように実験は行っていないものと思われる。
実際に実行してみればこれでは使い物にはならないことは
一目瞭然である。
従ってその記事の執筆者は実行した経験がないのだろう。