実行環境

77. 誤った CCSID の都市伝説

CCSID とは何であるかを正しく理解していないと次のような誤りを都市伝説のように
重ねてしまう場合がある。
次のうち、ひとつでも YES であると思ったら CCSID を誤解していることになる。

CCSID 5026 で英小文字を入力して表示したい。

CCSID 5026 は 日本語 + 半角カナ を表記するCCSID である。
5250エミュレータの「930 日本語英数カナ拡張」で英小文字を
CCSID 5026 データ・ベースに入力することができる。
しかしこれは誤りである。

CCSID 5035 で半角カナ文字を入力して表示したい。

CCSID 5035 は 日本語 + 英小文字 を表記するCCSID である。
5250エミュレータの「939 日本語英数小文字拡張」で半角カナ文字を
CCSID 5035 データ・ベースに入力することができる。
しかしこれは誤りである。

あるデータ・ベースに英小文字と半角カナ文字を混在させたい。

あるデータ・ベースに英小文字と半角カナ文字を混在させたい。
英小文字と半角カナ文字はコードが一部重なっているので
同一のデータ・ベースに英小文字と半角カナ文字を混在させることはできない。
同じコードを英小文字と判断するのか半角小文字と判断するのか
不明となるからである。

Ctrl + F3 を押せば CCSID を変更することができる。

キー・ポード操作だけによってデータ・ベースやジョブのCCSID が変わることはありえない。
そんなことになったらジョブの実行がおかしくなる。

CCSID 1399 はユニコードである。

ユニコードとは UTF-8 または UTF-16 であり少なくとも漢字は 4バイトコードである。
これに対して CCSID 1399 であっても EBCDIC であるので漢字はやはり 2 バイトである。
EBCDIC コードが突然、ユニコードになるなんてありえない。
これは IBM の発表記事(恐らく誤訳)を盲信した技術者が何の検証も知識もないままに
言っているだけに過ぎない虚言である。

IBM Apache HTTPサーバーや WebShphere を使うので
QCCSID は 5035 にしなければならない。

Apache や WAS の設定もパラメータ で CCSID 5035 を指定することができるので
システム全体を 5035 に変更してしまう必要は全くない。