リファレンス・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを入手 - 新規ウィンドウ
コンテンツはここから始まります

コードセットの変換

この章には次のトピックが含まれます:

 


コードセットの変換の概要

目的

この章では、z/OS EBCDICコードセット/コードページをUNIX/Linux ASCIIコードセットに変換するために必要な構成について説明します。

COBOLコピー・ファイルCONVERTMW.cpyには、ソースのz/OS16進値とターゲットのUNIX/Linux16進値の対応が格納されます。このコピー・ファイルは、Oracle Tuxedo Application Rehosting Workbench (Tuxedo ART Workbench)データ変換ツールによって生成されるすべてのCOBOL再ロード・ファイルで、z/OSの文字をUNIXの文字にトランスコードするときに使用されます。

対象読者

この章は、z/OSファイルやDB2表を、UNIX/LinuxファイルやOracle表またはDb2/luw (udb)に移行するユーザーを対象としています。z/OSプラットフォーム、z/OSコードセットおよびコードページ、Oracle文字セット、およびUNIXコードページをよく理解している必要があります。

 


z/OS – 図形文字の表示

データ・アセットをトランスコードするには、ソースのz/OS環境における文字マッピング・グリッドを判別する必要があります。

参照モニター

移行するz/OSアプリケーションで使用されるデータに含まれるすべての文字を表示するには、アプリケーションにリンクされているすべての図形文字が構成されたモニターを使用する必要があります。

このモニターは、次のファイルの内容を表示するために使用されます。このモニターに表示される文字を使用してEBCDICからASCIIへの変換フェーズを完了できるため、この手順は重要です。

REFCOD80ファイル

REFCOD80ファイルを<refinedir>/<release>/convert-data/codeset-tool から取得し、BINARY形式でRecordLength = 80パラメータを指定してz/OS PDSに転送します。このタイプのPDSは通常はJCLおよびCOBOLコンポーネントを格納するために使用されます。

REFCOD80ファイルには、EBCDICアルファベットのすべての文字のリストが含まれます。このファイルの各行の形式は次のとおりです。

DEC MVS:<dec>, HEXA MVS:<hex>, CAR=/<car>/ 

ここで:

<dec>

EBCDICの10進値(000と255の間)です。

<hex>

EBCDICの16進値(00とFFの間)です。

<car>

参照モニターに表示される図形文字です。
リスト2-1 REFCOD80ファイルの例
DEC MVS:000, HEXA MVS:00, CAR=/ /
[…]
DEC MVS:192, HEXA MVS:C0, CAR=/{/
DEC MVS:193, HEXA MVS:C1, CAR=/A/
DEC MVS:194, HEXA MVS:C2, CAR=/B/
DEC MVS:195, HEXA MVS:C3, CAR=/C/
DEC MVS:196, HEXA MVS:C4, CAR=/D/
[…]
注: モニターによっては、表示される図形文字が例の表示とは異なる場合があります。
注: このファイルはUNIX/Linuxプラットフォームでz/OSフォーマットに格納され、内容を変更してはならないため、binaryモードでの転送が必須です。

z/OSでの文字の表示

TSOのVIEWはファイルの表示に十分です。

この後の図は、テスト・モニターを使用したREFCOD80ファイル全体の画面キャプチャです。

図2-1 テスト・モニターでのREFCOD80ファイル: 第1部

テスト・モニターでのREFCOD80ファイル: 第1部

図2-2 テスト・モニターでのREFCOD80ファイル: 第2部

テスト・モニターでのREFCOD80ファイル: 第2部

図2-3 テスト・モニターでのREFCOD80ファイル: 第3部

テスト・モニターでのREFCOD80ファイル: 第3部

図2-4 テスト・モニターでのREFCOD80ファイル: 第4部

テスト・モニターでのREFCOD80ファイル: 第4部

注: 最初の画面キャプチャではCAR:/ /に図形文字は表示されていません。これらの文字に対応する図形表現がz/OSにないためです。

使用したテスト・モニターでは1ページに38行が表示されますが、他のモニターでは異なる可能性があります。

 


UNIX/Linux: 図形文字の表示

参照モニター

z/OSの場合と同様に、ターゲット・プラットフォームのモニターとすべてのグラフィック環境パラメータが、データ移行のための構成と同じであることが重要です。

この画面に表示される文字は、選択された文字セットに対応する必要があります。

COBOL CONVERTMW.cpy

COBOL CONVERTMW.cpyファイルは、<refinedir>/<release>/convert-data/codeset-toolにあります。コピー・ファイルは、文字列をDB2表データやVSAM/SAMファイルとともにEBCDICからASCIIに変換するために、Tuxedo ART Workbenchデータ・ツールの再ロード・スクリプトで使用されます。

リスト2-2 COBOL CONVERTMW.cpyコピー・ファイルで提供されるコード
*
* TEMPLATE: 
*
* Version: <project_name>
* Date:    <date_input>
* Source:  <source_name>
* Source Information: 
* <insert_here_any_information>
*
*
 01 TRANSCODE-INFO PIC X(70) VALUES "<project_name> <date_input>".
 01 TRANSCODE-LENGTH PIC 9(4) VALUE 256.
 01 TRANSCODE-SOURCE.
*                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
    02 FILLER PIC X(32) VALUE X"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f".
    02 FILLER PIC X(32) VALUE X"202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f".
    02 FILLER PIC X(32) VALUE X"404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f".
    02 FILLER PIC X(32) VALUE X"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f".
    02 FILLER PIC X(32) VALUE X"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f".
    02 FILLER PIC X(32) VALUE X"a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf".
    02 FILLER PIC X(32) VALUE X"c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf".
    02 FILLER PIC X(32) VALUE X"e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff".
 01 TRANSCODE-CIBLE.
*                               . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
    02 FILLER PIC X(32) VALUE X"000102039c09867f978d8e0b0c0d0e0f101112139d0a08871819928f1c1d1e1f".
    02 FILLER PIC X(32) VALUE X"808182838485171b88898a8b8c050607909116939495960498999a9b14159e1a".
    02 FILLER PIC X(32) VALUE X"20a0e2e4e0e1e3e5e7f15b2e3c282b2126e9eaebe8edeeefecdf5d242a293b5e".
    02 FILLER PIC X(32) VALUE X"2d2fc2c4c0c1c3c5c7d1a62c255f3e3ff8c9cacbc8cdcecfcc603a2340273d22".
    02 FILLER PIC X(32) VALUE X"d8616263646566676869abbbf0fdfeb1b06a6b6c6d6e6f707172aabae6b8c6a4".
    02 FILLER PIC X(32) VALUE X"b57e737475767778797aa1bfd0dddeaea2a3a5b7a9a7b6bcbdbeac7cafa8b4d7".
    02 FILLER PIC X(32) VALUE X"7b414243444546474849adf4f6f2f3f57d4a4b4c4d4e4f505152b9fbfcf9fa9f".
    02 FILLER PIC X(32) VALUE X"5cf7535455565758595ab2d4d6d2d3d530313233343536373839b3dbdcd9daff".

一般的に、トランスコード用のコピー・ファイルは次の3つの部分で構成されます。

enable-buffer-converterまたはenable-reverse-converterがシステム記述ファイルに設定されている場合、新しく生成したCOBOLプログラムを正しくコンパイルするには(「File-to-File」の章を参照)、このコピー・ファイルを、同じディレクトリ内にある次の2つのファイルのいずれかによって置き換える必要があります。これら両方には、次の2つの追加フィールドが含まれます。

Micro Focus COBOLの場合、CONVERTMW.cpy.mfファイルはCONVERTMW.CPYという名前に変更されます。2つの追加フィールドは次のとおりです。

COBOL-ITの場合、CONVERTMW.cpyファイルの.citCONVERTMW.CPYという名前に変更されます。2つの追加フィールドは次のとおりです。

注: 各FILLER変数には16個の16進文字ペアが含まれます。つまり、0 - 9A - Fでコーディングされた32文字が含まれます。

UNIXでの文字の表示

COBOL CONVERTMW.cpyコピー・ファイルの構成結果を確認するには、コピー・ファイルの名前と場所をパラメータとして使用して、<refinedir>/<release>/convert-data/codeset-toolに格納されているshow_convertmw.shスクリプトを実行します。

<refinedir>/<release>/convert-data/codeset-tool/show_convertmw.sh <refinedir>/<release>/convert-data/codeset-tool/CONVERTMW.cpy
注: このスクリプトでは、TMPPROJECT UNIX変数の初期化が必要です。例:
注: export TMPROJECT=$HOME/tmp

z/OSでのREFCOD80ファイルの表示とまったく同様に、このスクリプトによって、格納されているASCIIアルファベットのすべての文字のリストが生成されます。表示される各行の形式は次のとおりです。

DEC MVS:<dec>, HEXA MVS:<hex>, DEC UNIX:<decU>, HEXA UNIX:<hexU>, CAR=/<carU>/

ここで:

<dec>

EBCDICの10進値(000と255の間)です。

<hex>

EBCDICの16進値(00とFFの間)です。参照モニターに表示される図形文字です。

<decU>

等価のASCIIの10進値(000と255の間)です。

<hexU>

等価のASCIIの16進値(00とFFの間)です。

<carU>

UNIX/LinuxプラットフォームのASCII図形文字です。
リスト2-3 UNIX文字の例
DEC MVS:000, HEXA MVS:00, DEC UNIX:000, HEXA UNIX:00, CAR=//
[…]
DEC MVS:192, HEXA MVS:C0, DEC UNIX:123, HEXA UNIX:7b, CAR=/{/
DEC MVS:193, HEXA MVS:C1, DEC UNIX:065, HEXA UNIX:41, CAR=/A/
DEC MVS:194, HEXA MVS:C2, DEC UNIX:066, HEXA UNIX:42, CAR=/B/
DEC MVS:195, HEXA MVS:C3, DEC UNIX:067, HEXA UNIX:43, CAR=/C/
DEC MVS:196, HEXA MVS:C4, DEC UNIX:068, HEXA UNIX:44, CAR=/D/
[…]
注: UNIX/Linuxでは一部の文字で表示の問題が発生する可能性があります。おそらく、これらはz/OSプラットフォームではTSO VIEWERによってグラフィック表現されない文字です。
注: 7ビット・モードで構成されたXTERMで結果を確認すると、一部の図形文字しか表示されません。
リスト2-4 すべてのUNIX文字のリスト
DEC MVS:000, HEXA MVS:00, DEC UNIX:000, HEXA UNIX:00, CAR=/ /
DEC MVS:001, HEXA MVS:01, DEC UNIX:001, HEXA UNIX:01, CAR=/ /
DEC MVS:002, HEXA MVS:02, DEC UNIX:002, HEXA UNIX:02, CAR=/ /
DEC MVS:003, HEXA MVS:03, DEC UNIX:003, HEXA UNIX:03, CAR=/ /
DEC MVS:004, HEXA MVS:04, DEC UNIX:156, HEXA UNIX:9c, CAR=/œ/
DEC MVS:005, HEXA MVS:05, DEC UNIX:009, HEXA UNIX:09, CAR=/ /
DEC MVS:006, HEXA MVS:06, DEC UNIX:134, HEXA UNIX:86, CAR=/†/
DEC MVS:007, HEXA MVS:07, DEC UNIX:127, HEXA UNIX:7f, CAR=/?/
DEC MVS:008, HEXA MVS:08, DEC UNIX:151, HEXA UNIX:97, CAR=/-/
DEC MVS:009, HEXA MVS:09, DEC UNIX:141, HEXA UNIX:8d, CAR=/?/
DEC MVS:010, HEXA MVS:0A, DEC UNIX:142, HEXA UNIX:8e, CAR=/Ž/
DEC MVS:011, HEXA MVS:0B, DEC UNIX:011, HEXA UNIX:0b, CAR=//
DEC MVS:012, HEXA MVS:0C, DEC UNIX:012, HEXA UNIX:0c, CAR=//
DEC MVS:013, HEXA MVS:0D, DEC UNIX:013, HEXA UNIX:0d, CAR=/ /
DEC MVS:014, HEXA MVS:0E, DEC UNIX:014, HEXA UNIX:0e, CAR=//
DEC MVS:015, HEXA MVS:0F, DEC UNIX:015, HEXA UNIX:0f, CAR=/ /
DEC MVS:016, HEXA MVS:10, DEC UNIX:016, HEXA UNIX:10, CAR=/ /
DEC MVS:017, HEXA MVS:11, DEC UNIX:017, HEXA UNIX:11, CAR=/ /
DEC MVS:018, HEXA MVS:12, DEC UNIX:018, HEXA UNIX:12, CAR=/ /
DEC MVS:019, HEXA MVS:13, DEC UNIX:019, HEXA UNIX:13, CAR=/ /
DEC MVS:020, HEXA MVS:14, DEC UNIX:157, HEXA UNIX:9d, CAR=/?/
DEC MVS:021, HEXA MVS:15, DEC UNIX:010, HEXA UNIX:0a, CAR=//
DEC MVS:022, HEXA MVS:16, DEC UNIX:008, HEXA UNIX:08, CAR=/ /
DEC MVS:023, HEXA MVS:17, DEC UNIX:135, HEXA UNIX:87, CAR=/‡/
DEC MVS:024, HEXA MVS:18, DEC UNIX:024, HEXA UNIX:18, CAR=/ /
DEC MVS:025, HEXA MVS:19, DEC UNIX:025, HEXA UNIX:19, CAR=/ /
DEC MVS:026, HEXA MVS:1A, DEC UNIX:146, HEXA UNIX:92, CAR=/'/
DEC MVS:027, HEXA MVS:1B, DEC UNIX:143, HEXA UNIX:8f, CAR=/?/
DEC MVS:028, HEXA MVS:1C, DEC UNIX:028, HEXA UNIX:1c, CAR=/ /
DEC MVS:029, HEXA MVS:1D, DEC UNIX:029, HEXA UNIX:1d, CAR=/ /
DEC MVS:030, HEXA MVS:1E, DEC UNIX:030, HEXA UNIX:1e, CAR=/ /
DEC MVS:031, HEXA MVS:1F, DEC UNIX:031, HEXA UNIX:1f, CAR=//
DEC MVS:032, HEXA MVS:20, DEC UNIX:128, HEXA UNIX:80, CAR=/€/
DEC MVS:033, HEXA MVS:21, DEC UNIX:129, HEXA UNIX:81, CAR=/?/
DEC MVS:034, HEXA MVS:22, DEC UNIX:130, HEXA UNIX:82, CAR=/‚/
DEC MVS:035, HEXA MVS:23, DEC UNIX:131, HEXA UNIX:83, CAR=/ƒ/
DEC MVS:036, HEXA MVS:24, DEC UNIX:132, HEXA UNIX:84, CAR=/"/
DEC MVS:037, HEXA MVS:25, DEC UNIX:133, HEXA UNIX:85, CAR=/…/
DEC MVS:038, HEXA MVS:26, DEC UNIX:023, HEXA UNIX:17, CAR=/ /
DEC MVS:039, HEXA MVS:27, DEC UNIX:027, HEXA UNIX:1b, CAR=/ /
DEC MVS:040, HEXA MVS:28, DEC UNIX:136, HEXA UNIX:88, CAR=/ˆ/
DEC MVS:041, HEXA MVS:29, DEC UNIX:137, HEXA UNIX:89, CAR=/‰/
DEC MVS:042, HEXA MVS:2A, DEC UNIX:138, HEXA UNIX:8a, CAR=/Š/
DEC MVS:043, HEXA MVS:2B, DEC UNIX:139, HEXA UNIX:8b, CAR=/‹/
DEC MVS:044, HEXA MVS:2C, DEC UNIX:140, HEXA UNIX:8c, CAR=/Œ/
DEC MVS:045, HEXA MVS:2D, DEC UNIX:005, HEXA UNIX:05, CAR=/ /
DEC MVS:046, HEXA MVS:2E, DEC UNIX:006, HEXA UNIX:06, CAR=/ /
DEC MVS:047, HEXA MVS:2F, DEC UNIX:007, HEXA UNIX:07, CAR=//
DEC MVS:048, HEXA MVS:30, DEC UNIX:144, HEXA UNIX:90, CAR=/?/
DEC MVS:049, HEXA MVS:31, DEC UNIX:145, HEXA UNIX:91, CAR=/'/
DEC MVS:050, HEXA MVS:32, DEC UNIX:022, HEXA UNIX:16, CAR=/ /
DEC MVS:051, HEXA MVS:33, DEC UNIX:147, HEXA UNIX:93, CAR=/"/
DEC MVS:052, HEXA MVS:34, DEC UNIX:148, HEXA UNIX:94, CAR=/"/
DEC MVS:053, HEXA MVS:35, DEC UNIX:149, HEXA UNIX:95, CAR=/o/
DEC MVS:054, HEXA MVS:36, DEC UNIX:150, HEXA UNIX:96, CAR=/-/
DEC MVS:055, HEXA MVS:37, DEC UNIX:004, HEXA UNIX:04, CAR=/ /
DEC MVS:056, HEXA MVS:38, DEC UNIX:152, HEXA UNIX:98, CAR=/˜/
DEC MVS:057, HEXA MVS:39, DEC UNIX:153, HEXA UNIX:99, CAR=/™/
DEC MVS:058, HEXA MVS:3A, DEC UNIX:154, HEXA UNIX:9a, CAR=/š/
DEC MVS:059, HEXA MVS:3B, DEC UNIX:155, HEXA UNIX:9b, CAR=/›/
DEC MVS:060, HEXA MVS:3C, DEC UNIX:020, HEXA UNIX:14, CAR=/ /
DEC MVS:061, HEXA MVS:3D, DEC UNIX:021, HEXA UNIX:15, CAR=/ /
DEC MVS:062, HEXA MVS:3E, DEC UNIX:158, HEXA UNIX:9e, CAR=/ž/
DEC MVS:063, HEXA MVS:3F, DEC UNIX:026, HEXA UNIX:1a, CAR=/ /
DEC MVS:064, HEXA MVS:40, DEC UNIX:032, HEXA UNIX:20, CAR=/ /
DEC MVS:065, HEXA MVS:41, DEC UNIX:160, HEXA UNIX:a0, CAR=/ /
DEC MVS:066, HEXA MVS:42, DEC UNIX:226, HEXA UNIX:e2, CAR=/â/
DEC MVS:067, HEXA MVS:43, DEC UNIX:228, HEXA UNIX:e4, CAR=/ä/
DEC MVS:068, HEXA MVS:44, DEC UNIX:224, HEXA UNIX:e0, CAR=/à/
DEC MVS:069, HEXA MVS:45, DEC UNIX:225, HEXA UNIX:e1, CAR=/á/
DEC MVS:070, HEXA MVS:46, DEC UNIX:227, HEXA UNIX:e3, CAR=/ã/
DEC MVS:071, HEXA MVS:47, DEC UNIX:229, HEXA UNIX:e5, CAR=/å/
DEC MVS:072, HEXA MVS:48, DEC UNIX:231, HEXA UNIX:e7, CAR=/ç/
DEC MVS:073, HEXA MVS:49, DEC UNIX:241, HEXA UNIX:f1, CAR=/ñ/
DEC MVS:074, HEXA MVS:4A, DEC UNIX:091, HEXA UNIX:5b, CAR=/[/
DEC MVS:075, HEXA MVS:4B, DEC UNIX:046, HEXA UNIX:2e, CAR=/./
DEC MVS:076, HEXA MVS:4C, DEC UNIX:060, HEXA UNIX:3c, CAR=/</
DEC MVS:077, HEXA MVS:4D, DEC UNIX:040, HEXA UNIX:28, CAR=/(/
DEC MVS:078, HEXA MVS:4E, DEC UNIX:043, HEXA UNIX:2b, CAR=/+/
DEC MVS:079, HEXA MVS:4F, DEC UNIX:033, HEXA UNIX:21, CAR=/!/
DEC MVS:080, HEXA MVS:50, DEC UNIX:038, HEXA UNIX:26, CAR=/&/
DEC MVS:081, HEXA MVS:51, DEC UNIX:233, HEXA UNIX:e9, CAR=/é/
DEC MVS:082, HEXA MVS:52, DEC UNIX:234, HEXA UNIX:ea, CAR=/ê/
DEC MVS:083, HEXA MVS:53, DEC UNIX:235, HEXA UNIX:eb, CAR=/ë/
DEC MVS:084, HEXA MVS:54, DEC UNIX:232, HEXA UNIX:e8, CAR=/è/
DEC MVS:085, HEXA MVS:55, DEC UNIX:237, HEXA UNIX:ed, CAR=/í/
DEC MVS:086, HEXA MVS:56, DEC UNIX:238, HEXA UNIX:ee, CAR=/î/
DEC MVS:087, HEXA MVS:57, DEC UNIX:239, HEXA UNIX:ef, CAR=/ï/
DEC MVS:088, HEXA MVS:58, DEC UNIX:236, HEXA UNIX:ec, CAR=/ì/
DEC MVS:089, HEXA MVS:59, DEC UNIX:223, HEXA UNIX:df, CAR=/ß/
DEC MVS:090, HEXA MVS:5A, DEC UNIX:093, HEXA UNIX:5d, CAR=/]/
DEC MVS:091, HEXA MVS:5B, DEC UNIX:036, HEXA UNIX:24, CAR=/$/
DEC MVS:092, HEXA MVS:5C, DEC UNIX:042, HEXA UNIX:2a, CAR=/*/
DEC MVS:093, HEXA MVS:5D, DEC UNIX:041, HEXA UNIX:29, CAR=/)/
DEC MVS:094, HEXA MVS:5E, DEC UNIX:059, HEXA UNIX:3b, CAR=/;/
DEC MVS:095, HEXA MVS:5F, DEC UNIX:094, HEXA UNIX:5e, CAR=/^/
DEC MVS:096, HEXA MVS:60, DEC UNIX:045, HEXA UNIX:2d, CAR=/-/
DEC MVS:097, HEXA MVS:61, DEC UNIX:047, HEXA UNIX:2f, CAR=///
DEC MVS:098, HEXA MVS:62, DEC UNIX:194, HEXA UNIX:c2, CAR=/Â/
DEC MVS:099, HEXA MVS:63, DEC UNIX:196, HEXA UNIX:c4, CAR=/Ä/
DEC MVS:100, HEXA MVS:64, DEC UNIX:192, HEXA UNIX:c0, CAR=/À/
DEC MVS:101, HEXA MVS:65, DEC UNIX:193, HEXA UNIX:c1, CAR=/Á/
DEC MVS:102, HEXA MVS:66, DEC UNIX:195, HEXA UNIX:c3, CAR=/Ã/
DEC MVS:103, HEXA MVS:67, DEC UNIX:197, HEXA UNIX:c5, CAR=/Å/
DEC MVS:104, HEXA MVS:68, DEC UNIX:199, HEXA UNIX:c7, CAR=/Ç/
DEC MVS:105, HEXA MVS:69, DEC UNIX:209, HEXA UNIX:d1, CAR=/Ñ/
DEC MVS:106, HEXA MVS:6A, DEC UNIX:166, HEXA UNIX:a6, CAR=/¦/
DEC MVS:107, HEXA MVS:6B, DEC UNIX:044, HEXA UNIX:2c, CAR=/,/
DEC MVS:108, HEXA MVS:6C, DEC UNIX:037, HEXA UNIX:25, CAR=/%/
DEC MVS:109, HEXA MVS:6D, DEC UNIX:095, HEXA UNIX:5f, CAR=/_/
DEC MVS:110, HEXA MVS:6E, DEC UNIX:062, HEXA UNIX:3e, CAR=/>/
DEC MVS:111, HEXA MVS:6F, DEC UNIX:063, HEXA UNIX:3f, CAR=/?/
DEC MVS:112, HEXA MVS:70, DEC UNIX:248, HEXA UNIX:f8, CAR=/ø/
DEC MVS:113, HEXA MVS:71, DEC UNIX:201, HEXA UNIX:c9, CAR=/É/
DEC MVS:114, HEXA MVS:72, DEC UNIX:202, HEXA UNIX:ca, CAR=/Ê/
DEC MVS:115, HEXA MVS:73, DEC UNIX:203, HEXA UNIX:cb, CAR=/Ë/
DEC MVS:116, HEXA MVS:74, DEC UNIX:200, HEXA UNIX:c8, CAR=/È/
DEC MVS:117, HEXA MVS:75, DEC UNIX:205, HEXA UNIX:cd, CAR=/Í/
DEC MVS:118, HEXA MVS:76, DEC UNIX:206, HEXA UNIX:ce, CAR=/Î/
DEC MVS:119, HEXA MVS:77, DEC UNIX:207, HEXA UNIX:cf, CAR=/Ï/
DEC MVS:120, HEXA MVS:78, DEC UNIX:204, HEXA UNIX:cc, CAR=/Ì/
DEC MVS:121, HEXA MVS:79, DEC UNIX:096, HEXA UNIX:60, CAR=/`/
DEC MVS:122, HEXA MVS:7A, DEC UNIX:058, HEXA UNIX:3a, CAR=/:/
DEC MVS:123, HEXA MVS:7B, DEC UNIX:035, HEXA UNIX:23, CAR=/#/
DEC MVS:124, HEXA MVS:7C, DEC UNIX:064, HEXA UNIX:40, CAR=/@/
DEC MVS:125, HEXA MVS:7D, DEC UNIX:039, HEXA UNIX:27, CAR=/'/
DEC MVS:126, HEXA MVS:7E, DEC UNIX:061, HEXA UNIX:3d, CAR=/=/
DEC MVS:127, HEXA MVS:7F, DEC UNIX:034, HEXA UNIX:22, CAR=/"/
DEC MVS:128, HEXA MVS:80, DEC UNIX:216, HEXA UNIX:d8, CAR=/Ø/
DEC MVS:129, HEXA MVS:81, DEC UNIX:097, HEXA UNIX:61, CAR=/a/
DEC MVS:130, HEXA MVS:82, DEC UNIX:098, HEXA UNIX:62, CAR=/b/
DEC MVS:131, HEXA MVS:83, DEC UNIX:099, HEXA UNIX:63, CAR=/c/
DEC MVS:132, HEXA MVS:84, DEC UNIX:100, HEXA UNIX:64, CAR=/d/
DEC MVS:133, HEXA MVS:85, DEC UNIX:101, HEXA UNIX:65, CAR=/e/
DEC MVS:134, HEXA MVS:86, DEC UNIX:102, HEXA UNIX:66, CAR=/f/
DEC MVS:135, HEXA MVS:87, DEC UNIX:103, HEXA UNIX:67, CAR=/g/
DEC MVS:136, HEXA MVS:88, DEC UNIX:104, HEXA UNIX:68, CAR=/h/
DEC MVS:137, HEXA MVS:89, DEC UNIX:105, HEXA UNIX:69, CAR=/i/
DEC MVS:138, HEXA MVS:8A, DEC UNIX:171, HEXA UNIX:ab, CAR=/"/
DEC MVS:139, HEXA MVS:8B, DEC UNIX:187, HEXA UNIX:bb, CAR=/"/
DEC MVS:140, HEXA MVS:8C, DEC UNIX:240, HEXA UNIX:f0, CAR=/ð/
DEC MVS:141, HEXA MVS:8D, DEC UNIX:253, HEXA UNIX:fd, CAR=/ý/
DEC MVS:142, HEXA MVS:8E, DEC UNIX:254, HEXA UNIX:fe, CAR=/þ/
DEC MVS:143, HEXA MVS:8F, DEC UNIX:177, HEXA UNIX:b1, CAR=/±/
DEC MVS:144, HEXA MVS:90, DEC UNIX:176, HEXA UNIX:b0, CAR=/˚/
DEC MVS:145, HEXA MVS:91, DEC UNIX:106, HEXA UNIX:6a, CAR=/j/
DEC MVS:146, HEXA MVS:92, DEC UNIX:107, HEXA UNIX:6b, CAR=/k/
DEC MVS:147, HEXA MVS:93, DEC UNIX:108, HEXA UNIX:6c, CAR=/l/
DEC MVS:148, HEXA MVS:94, DEC UNIX:109, HEXA UNIX:6d, CAR=/m/
DEC MVS:149, HEXA MVS:95, DEC UNIX:110, HEXA UNIX:6e, CAR=/n/
DEC MVS:150, HEXA MVS:96, DEC UNIX:111, HEXA UNIX:6f, CAR=/o/
DEC MVS:151, HEXA MVS:97, DEC UNIX:112, HEXA UNIX:70, CAR=/p/
DEC MVS:152, HEXA MVS:98, DEC UNIX:113, HEXA UNIX:71, CAR=/q/
DEC MVS:153, HEXA MVS:99, DEC UNIX:114, HEXA UNIX:72, CAR=/r/
DEC MVS:154, HEXA MVS:9A, DEC UNIX:170, HEXA UNIX:aa, CAR=/ª/
DEC MVS:155, HEXA MVS:9B, DEC UNIX:186, HEXA UNIX:ba, CAR=/º/
DEC MVS:156, HEXA MVS:9C, DEC UNIX:230, HEXA UNIX:e6, CAR=/æ/
DEC MVS:157, HEXA MVS:9D, DEC UNIX:184, HEXA UNIX:b8, CAR=/¸/
DEC MVS:158, HEXA MVS:9E, DEC UNIX:198, HEXA UNIX:c6, CAR=/Æ/
DEC MVS:159, HEXA MVS:9F, DEC UNIX:164, HEXA UNIX:a4, CAR=/¤/
DEC MVS:160, HEXA MVS:A0, DEC UNIX:181, HEXA UNIX:b5, CAR=/µ/
DEC MVS:161, HEXA MVS:A1, DEC UNIX:126, HEXA UNIX:7e, CAR=/~/
DEC MVS:162, HEXA MVS:A2, DEC UNIX:115, HEXA UNIX:73, CAR=/s/
DEC MVS:163, HEXA MVS:A3, DEC UNIX:116, HEXA UNIX:74, CAR=/t/
DEC MVS:164, HEXA MVS:A4, DEC UNIX:117, HEXA UNIX:75, CAR=/u/
DEC MVS:165, HEXA MVS:A5, DEC UNIX:118, HEXA UNIX:76, CAR=/v/
DEC MVS:166, HEXA MVS:A6, DEC UNIX:119, HEXA UNIX:77, CAR=/w/
DEC MVS:167, HEXA MVS:A7, DEC UNIX:120, HEXA UNIX:78, CAR=/x/
DEC MVS:168, HEXA MVS:A8, DEC UNIX:121, HEXA UNIX:79, CAR=/y/
DEC MVS:169, HEXA MVS:A9, DEC UNIX:122, HEXA UNIX:7a, CAR=/z/
DEC MVS:170, HEXA MVS:AA, DEC UNIX:161, HEXA UNIX:a1, CAR=/¡/
DEC MVS:171, HEXA MVS:AB, DEC UNIX:191, HEXA UNIX:bf, CAR=/¿/
DEC MVS:172, HEXA MVS:AC, DEC UNIX:208, HEXA UNIX:d0, CAR=/Ð/
DEC MVS:173, HEXA MVS:AD, DEC UNIX:221, HEXA UNIX:dd, CAR=/Ý/
DEC MVS:174, HEXA MVS:AE, DEC UNIX:222, HEXA UNIX:de, CAR=/Þ/
DEC MVS:175, HEXA MVS:AF, DEC UNIX:174, HEXA UNIX:ae, CAR=/®/
DEC MVS:176, HEXA MVS:B0, DEC UNIX:162, HEXA UNIX:a2, CAR=/¢/
DEC MVS:177, HEXA MVS:B1, DEC UNIX:163, HEXA UNIX:a3, CAR=/£/
DEC MVS:178, HEXA MVS:B2, DEC UNIX:165, HEXA UNIX:a5, CAR=/¥/
DEC MVS:179, HEXA MVS:B3, DEC UNIX:183, HEXA UNIX:b7, CAR=/·/
DEC MVS:180, HEXA MVS:B4, DEC UNIX:169, HEXA UNIX:a9, CAR=/©/
DEC MVS:181, HEXA MVS:B5, DEC UNIX:167, HEXA UNIX:a7, CAR=/§/
DEC MVS:182, HEXA MVS:B6, DEC UNIX:182, HEXA UNIX:b6, CAR=//
DEC MVS:183, HEXA MVS:B7, DEC UNIX:188, HEXA UNIX:bc, CAR=/¼/
DEC MVS:184, HEXA MVS:B8, DEC UNIX:189, HEXA UNIX:bd, CAR=/½/
DEC MVS:185, HEXA MVS:B9, DEC UNIX:190, HEXA UNIX:be, CAR=/¾/
DEC MVS:186, HEXA MVS:BA, DEC UNIX:172, HEXA UNIX:ac, CAR=//
DEC MVS:187, HEXA MVS:BB, DEC UNIX:124, HEXA UNIX:7c, CAR=/|/
DEC MVS:188, HEXA MVS:BC, DEC UNIX:175, HEXA UNIX:af, CAR=/¯/
DEC MVS:189, HEXA MVS:BD, DEC UNIX:168, HEXA UNIX:a8, CAR=/¨/
DEC MVS:190, HEXA MVS:BE, DEC UNIX:180, HEXA UNIX:b4, CAR=/´/
DEC MVS:191, HEXA MVS:BF, DEC UNIX:215, HEXA UNIX:d7, CAR=/×/
DEC MVS:192, HEXA MVS:C0, DEC UNIX:123, HEXA UNIX:7b, CAR=/{/
DEC MVS:193, HEXA MVS:C1, DEC UNIX:065, HEXA UNIX:41, CAR=/A/
DEC MVS:194, HEXA MVS:C2, DEC UNIX:066, HEXA UNIX:42, CAR=/B/
DEC MVS:195, HEXA MVS:C3, DEC UNIX:067, HEXA UNIX:43, CAR=/C/
DEC MVS:196, HEXA MVS:C4, DEC UNIX:068, HEXA UNIX:44, CAR=/D/
DEC MVS:197, HEXA MVS:C5, DEC UNIX:069, HEXA UNIX:45, CAR=/E/
DEC MVS:198, HEXA MVS:C6, DEC UNIX:070, HEXA UNIX:46, CAR=/F/
DEC MVS:199, HEXA MVS:C7, DEC UNIX:071, HEXA UNIX:47, CAR=/G/
DEC MVS:200, HEXA MVS:C8, DEC UNIX:072, HEXA UNIX:48, CAR=/H/
DEC MVS:201, HEXA MVS:C9, DEC UNIX:073, HEXA UNIX:49, CAR=/I/
DEC MVS:202, HEXA MVS:CA, DEC UNIX:173, HEXA UNIX:ad, CAR=/¯/
DEC MVS:203, HEXA MVS:CB, DEC UNIX:244, HEXA UNIX:f4, CAR=/ô/
DEC MVS:204, HEXA MVS:CC, DEC UNIX:246, HEXA UNIX:f6, CAR=/ö/
DEC MVS:205, HEXA MVS:CD, DEC UNIX:242, HEXA UNIX:f2, CAR=/ò/
DEC MVS:206, HEXA MVS:CE, DEC UNIX:243, HEXA UNIX:f3, CAR=/ó/
DEC MVS:207, HEXA MVS:CF, DEC UNIX:245, HEXA UNIX:f5, CAR=/õ/
DEC MVS:208, HEXA MVS:D0, DEC UNIX:125, HEXA UNIX:7d, CAR=/}/
DEC MVS:209, HEXA MVS:D1, DEC UNIX:074, HEXA UNIX:4a, CAR=/J/
DEC MVS:210, HEXA MVS:D2, DEC UNIX:075, HEXA UNIX:4b, CAR=/K/
DEC MVS:211, HEXA MVS:D3, DEC UNIX:076, HEXA UNIX:4c, CAR=/L/
DEC MVS:212, HEXA MVS:D4, DEC UNIX:077, HEXA UNIX:4d, CAR=/M/
DEC MVS:213, HEXA MVS:D5, DEC UNIX:078, HEXA UNIX:4e, CAR=/N/
DEC MVS:214, HEXA MVS:D6, DEC UNIX:079, HEXA UNIX:4f, CAR=/O/
DEC MVS:215, HEXA MVS:D7, DEC UNIX:080, HEXA UNIX:50, CAR=/P/
DEC MVS:216, HEXA MVS:D8, DEC UNIX:081, HEXA UNIX:51, CAR=/Q/
DEC MVS:217, HEXA MVS:D9, DEC UNIX:082, HEXA UNIX:52, CAR=/R/
DEC MVS:218, HEXA MVS:DA, DEC UNIX:185, HEXA UNIX:b9, CAR=/¹/
DEC MVS:219, HEXA MVS:DB, DEC UNIX:251, HEXA UNIX:fb, CAR=/û/
DEC MVS:220, HEXA MVS:DC, DEC UNIX:252, HEXA UNIX:fc, CAR=/ü/
DEC MVS:221, HEXA MVS:DD, DEC UNIX:249, HEXA UNIX:f9, CAR=/ù/
DEC MVS:222, HEXA MVS:DE, DEC UNIX:250, HEXA UNIX:fa, CAR=/ú/
DEC MVS:223, HEXA MVS:DF, DEC UNIX:159, HEXA UNIX:9f, CAR=/Ÿ/
DEC MVS:224, HEXA MVS:E0, DEC UNIX:092, HEXA UNIX:5c, CAR=/\/
DEC MVS:225, HEXA MVS:E1, DEC UNIX:247, HEXA UNIX:f7, CAR=/÷/
DEC MVS:226, HEXA MVS:E2, DEC UNIX:083, HEXA UNIX:53, CAR=/S/
DEC MVS:227, HEXA MVS:E3, DEC UNIX:084, HEXA UNIX:54, CAR=/T/
DEC MVS:228, HEXA MVS:E4, DEC UNIX:085, HEXA UNIX:55, CAR=/U/
DEC MVS:229, HEXA MVS:E5, DEC UNIX:086, HEXA UNIX:56, CAR=/V/
DEC MVS:230, HEXA MVS:E6, DEC UNIX:087, HEXA UNIX:57, CAR=/W/
DEC MVS:231, HEXA MVS:E7, DEC UNIX:088, HEXA UNIX:58, CAR=/X/
DEC MVS:232, HEXA MVS:E8, DEC UNIX:089, HEXA UNIX:59, CAR=/Y/
DEC MVS:233, HEXA MVS:E9, DEC UNIX:090, HEXA UNIX:5a, CAR=/Z/
DEC MVS:234, HEXA MVS:EA, DEC UNIX:178, HEXA UNIX:b2, CAR=/²/
DEC MVS:235, HEXA MVS:EB, DEC UNIX:212, HEXA UNIX:d4, CAR=/Ô/
DEC MVS:236, HEXA MVS:EC, DEC UNIX:214, HEXA UNIX:d6, CAR=/Ö/
DEC MVS:237, HEXA MVS:ED, DEC UNIX:210, HEXA UNIX:d2, CAR=/Ò/
DEC MVS:238, HEXA MVS:EE, DEC UNIX:211, HEXA UNIX:d3, CAR=/Ó/
DEC MVS:239, HEXA MVS:EF, DEC UNIX:213, HEXA UNIX:d5, CAR=/Õ/
DEC MVS:240, HEXA MVS:F0, DEC UNIX:048, HEXA UNIX:30, CAR=/0/
DEC MVS:241, HEXA MVS:F1, DEC UNIX:049, HEXA UNIX:31, CAR=/1/
DEC MVS:242, HEXA MVS:F2, DEC UNIX:050, HEXA UNIX:32, CAR=/2/
DEC MVS:243, HEXA MVS:F3, DEC UNIX:051, HEXA UNIX:33, CAR=/3/
DEC MVS:244, HEXA MVS:F4, DEC UNIX:052, HEXA UNIX:34, CAR=/4/
DEC MVS:245, HEXA MVS:F5, DEC UNIX:053, HEXA UNIX:35, CAR=/5/
DEC MVS:246, HEXA MVS:F6, DEC UNIX:054, HEXA UNIX:36, CAR=/6/
DEC MVS:247, HEXA MVS:F7, DEC UNIX:055, HEXA UNIX:37, CAR=/7/
DEC MVS:248, HEXA MVS:F8, DEC UNIX:056, HEXA UNIX:38, CAR=/8/
DEC MVS:249, HEXA MVS:F9, DEC UNIX:057, HEXA UNIX:39, CAR=/9/
DEC MVS:250, HEXA MVS:FA, DEC UNIX:179, HEXA UNIX:b3, CAR=/³/
DEC MVS:251, HEXA MVS:FB, DEC UNIX:219, HEXA UNIX:db, CAR=/Û/
DEC MVS:252, HEXA MVS:FC, DEC UNIX:220, HEXA UNIX:dc, CAR=/Ü/
DEC MVS:253, HEXA MVS:FD, DEC UNIX:217, HEXA UNIX:d9, CAR=/Ù/
DEC MVS:254, HEXA MVS:FE, DEC UNIX:218, HEXA UNIX:da, CAR=/Ú/
DEC MVS:255, HEXA MVS:FF, DEC UNIX:255, HEXA UNIX:ff, CAR=/ÿ/

 


トランスコード・コピー・ファイルの検証と調整

検証

EBCDIC文字からASCIIへのトランスコードを検証するには、z/OSモニターに表示される行とUNIX/Linuxモニターに表示される行を比較します。

リスト2-5 ZOSおよびUNIXの様々な表示例
ZOSDEC MVS:192, HEXA MVS:C0, CAR=/{/
UNIXDEC MVS:192, HEXA MVS:C0, DEC UNIX:123, HEXA UNIX:7b, CAR=/{/

ZOSDEC MVS:193, HEXA MVS:C1, CAR=/A/
UNIXDEC MVS:193, HEXA MVS:C1, DEC UNIX:065, HEXA UNIX:41, CAR=/A/
ZOSDEC MVS:090, HEXA MVS:5A, CAR=/]/
UNIXDEC MVS:090, HEXA MVS:5A, DEC UNIX:093, HEXA UNIX:5d, CAR=/]/

COBOL CONVERTMW.cpyコピー・ファイルの調整

UNIX参照モニターに表示される図形文字がz/OS参照モニターに表示される文字と異なる場合は調整が必要です。

調整では、COBOL CONVERTMW.cpyコピー・ファイルのTRANSCODE-CIBLE変数に格納されている16進値を変更します。

z/OS文字の検索

対になっている文字を調べて、TRANSCODE-SOURCEセクションで元の16進値を確認します。

同じ値がいくつも存在するように見える場合があるため、対になっている16進値を確認することが重要です。

z/OSではソースの16進文字EAが「²」ではなく「#」であるという仮定の例を使用します。

2つのモニターには次のように示されます。

ZOS DEC MVS:234, HEXA MVS:EA, CAR=/#/
UNIX DEC MVS:234, HEXA MVS:EA, DEC UNIX:178, HEXA UNIX:b2, CAR=/²/
図2-5 z/OS文字の確認: 第1部

z/OS文字の確認: 第1部

文字列eaは、6行目と8行目に見つかります。どちらの文字列を選択すればよいのでしょうか。

6行目のea文字列は2つの文字列aeとafが接する部分であり、8行目のea文字列が探しているものです。これは8行目の21番目の位置から開始し、この行の11個目の16進値です(1つの16進値は2つの文字で構成されます)。

図2-6 z/OS文字の確認: 第2部

z/OS文字の確認: 第2部

置き換えるUNIX文字の検索

z/OSファイルで16進値が見つかったら、TRANSCODE-SOURCEと同じ場所(8行目の21番目の文字)にある変数TRANSCODE-CIBLEの値を簡単に取得できます。show_convertmw.shスクリプトを使用して、TRANSCODE-CIBLEの16進値がb2であることを確認できます。

UNIX文字の置換

値b2は、#に相当する16進値に変更する必要があります。show_convertmw.shを実行して生成されるファイルに示されるように、この16進値は23です。

DEC MVS:123, HEXA MVS:7B, DEC UNIX:035, HEXA UNIX:23, CAR=/#/

例に関する備考

特殊な文字

次の特殊な文字について注意してください。

これらについては、ソース・プラットフォームとターゲット・プラットフォームの間で同じ10進値を使用する必要があります。これは、異なるプラットフォーム間でISOに対応するCOBOLの動作を維持するためです。

 


COBOL CONVERTMW.cpyファイルの使用

このコピー・ファイルは、Tuxedo ART Workbenchのファイルおよびデータベース移行ツールで生成されるCOBOL再ロード・プログラムによって使用されます。コピー・ファイルは、Tuxedo ART Workbenchのインストールの際にインストールされます。

UNIX変数で指定されるディレクトリをチェックします。

COBCPY

COBOLコンパイラで使用されます。

 


エラー・メッセージ

DATART-1001:

例: コピー・ファイル$convertmwCopyFileが見つかりません。引数1をチェックしてください。
説明: 引数1にはCOBOLコピー・ファイル名が含まれます。

DATART-1002:

例: ディレクトリ$TMPPROJECT: $TMPPROJECTにアクセスできません。
説明: UNIX変数TMPPROJECTを設定する必要があります。

DATART-1003:

例: awkによって異常なステータスが返されました。
説明: 前のメッセージを確認してください。

 


関連項目


  先頭に戻る       前  次