5250エミュレータ

53. 5250エミュレータでUnicodeをサポートするには

データ・ベースのフィールドのCCSIDにユニコード(Unicode)を
指定した場合にデータを入力するには表示装置ファイル(DSPF)にも
CCSIDにUnicodeを指定しなければならない。

[データ・ベースのUnicode指定]

0001.00      A**********************************************                         
0002.00      A*    TOKMAS  :   得意先マスターファイル      *                         
0003.00      A*                                            *                         
0004.00      A*    CCSID   :   5026 + 1200                 *                         
0005.00      A**********************************************                         
0006.00      A                                      UNIQUE                           
0007.00      A          R TOKMASR                   TEXT(' 得意先マスターファイル ') 
0008.00      A*( 固定情報 )                                                          
0009.00      A            TKCODE         4A         COLHDG(' 得意先コード ')         
0010.00      A            TKNMJ         32G         COLHDG(' 得意先名 ')             
0011.00      A                                      CCSID(1200)                      
0012.00      A            TKNM          12G         COLHDG(' 略名 ')                 
0013.00      A                                      CCSID(1200)                      
  :                        :

[表示装置ファイル(DSPF)のUnicode指定]

0001.00      A*************************************************************** 
0002.00      A*    TOK001FM     :  CCSID=1200 の登録                          
0003.00      A*    QTR5026/QDSPSRC(TOK001FM)                                  
0004.00      A*     使用目的    :   更新 (*UPDATE)                            
0005.00      A*     作成日      :  2021/06/17         13:11:24                
0006.00      A*     作成者      :  QTR                                        
0007.00      A*************************************************************** 
0008.00      A                                      DSPSIZ(24 80 *DS3)        
0009.00      A                                      MSGLOC(24)                
0010.00      A                                      PRINT                     
 :
0041.00       *    ---------------------------                          
0042.00      A          R DSPDTA01                                      
0043.00       *    ---------------------------                          
0044.00      A                                      TEXT(' 明細画面 01')
0045.00      A                                      CF03(03 ' 終了 ')   
0046.00      A                                      CF10(10 ' 更新 ')   
0047.00      A                                      CF23(23 ' 削除 ')   
0048.00      A                                      CF12(12 ' 前画面 ') 
0049.00      A                                      ROLLUP(07)          
0050.00      A                                      ROLLDOWN(08)        
0051.00      A                                      SETOF(99)           
0052.00      A                                      BLINK               
 :
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' 電話番号 '      
  :

■ 5250エミュレータのUnicode指定

5250エミュレータ Unicode指定
PersonalCommunications ×
IBM ClientAccess (C/A) ×
IBM AccessClientSolutions (ACS)

 ・IBM ACSのUnicode設定

 このようにUnicodeの入力ができるのはIBM ACS(=Access Client Solutions)だけであるが
実は IBM ACSも5250仮想端末装置APIからの 5250QUERYコマンドに対して
 上記のようにUnicodeに「はい」を設定しておくと仮想端末APIに自分が使用可能な
UniccodeのCCSID=13488 を送るようになっている。
(弊社は5250ストリームには精通しているので内部調査によって判明した)
サーバー・サイドのジョブではCCSID=1200としておきながらIBM ACSはCCSID=13488
送っているのでこれは正しく一致していない。
このあたりにIBMのCCSIDに対する一貫性が伺えない。

現在のIBM ACSのリリース・レベルではUTF-8CCSID=1200へ対応していない。
弊社では仮想端末APIが各i5/OSノリリース・レベルでこれらへ対応しているか
調査を進めていく予定である。

データ・ベースの一部だけのCCSIDをUnicodeに設定するというIBMユーザーは
今のところ例は聞いたこともないと考えられない。
IBM iのUnicode対応はUnicodeの流行に合わせて対応を追加してみましたという
参考程度の出品と思われる。

■ AutoWebのUnicodeサポートについて

 
AutoWebでも IBM ACSと同じようにQUERY5250コマンドにUnicode対応可のフラグをオンにして
仮想端末APIに送信してフィールド値をUnicodeで受け取るまでに改良済みである。
Unicodeの表示もまもなくできることと思われる。