Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


ASCII SBCS 文字と EBCDIC SBCS 文字の違いの処理

ASCII 文字と EBCDIC 文字のデータ表現の違いによる問題を避けるために、CHAR(EBCDIC) コンパイラー・オプションを使用します。

Windows ベースのワークステーションは ASCII ベースの文字セットを使用しますが、メインフレームは EBCDIC 文字セットを使用します。したがって、大半の文字が、次の表に示すように異なる 16 進値を持ちます。

表 65. ASCII 文字と EBCDIC 文字との対比
文字 ASCII の場合の 16 進値 EBCDIC の場合の 16 進値
'0' から '9' X'30' から X'39' X'F0' から X'F9'
'a' X'61' X'81'
'A' X'41' X'C1'
ブランク X'20' X'40'

また、次の表に示すように、文字データの EBCDIC 16 進値に依存するコードは、文字データが ASCII 値を持つ場合、ほとんどが失敗してしまいます。

表 66. ASCII での比較と EBCDIC での比較の対比
比較 ASCII の場合の評価 EBCDIC の場合の評価
'a' < 'A'
'A' < '1'
x >= '0' 真の場合、x が数字であるかどうかは示されない 真である場合、x はおそらく数字
x = X'40' x がブランクかどうかはテストされない x かどうかがテストされる

このような違いがあるため、文字ストリングのソート結果は EBCDIC と ASCII では異なります。 多くのプログラムでは、これらの違いによる影響はありませんが、プログラムが一部の文字ストリングの正確なソート順序に依存する場合は、論理エラーの可能性にも注意する必要があります。EBCDIC 照合シーケンスに依存するプログラムをワークステーションに移植する場合は、PROGRAM COLLATING SEQUENCE IS EBCDIC または COLLSEQ(EBCDIC) コンパイラー・オプションを使用して、EBCDIC 照合シーケンスを取得することができます。

関連参照
CHAR
COLLSEQ


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)