LoginSignup
0
0

z/OS利用時の文字コード変換 - 動作検証(2) Git利用時のコード変換

Last updated at Posted at 2024-02-11

はじめに

動作検証(1)で使用したPDSメンバー(各種文字列が含まれたもの)を使用し、GitHubとファイルの送受信を行った場合にどうなるかをみてみます。

関連記事

z/OS利用時の文字コード変換 - 動作検証(1) 各ツールでの文字列表示
z/OS利用時の文字コード変換 - 動作検証(2) Git利用時のコード変換
z/OS利用時の文字コード変換 - 動作検証(3) DBBユーザー・ビルド時のコード変換
z/OS利用時の文字コード変換 - 動作検証(4) カタカナ系文字コードにおけるPDSメンバー名

環境情報

z/OS V2.4
Windows11
PCOM V14
IDz V15.0.5
VS Code V1.77.3
GitHub Enterprise

動作検証

1. Rocket Gitでのコード変換

(1)z/OS ⇒ GitHub

image.png

PDSメンバーを一旦USS上のファイルとしてコピーし、それをRocket GitでGitHub上にPushします。

USSへのファイルコピー、および、エンコーディングの指定例は以下の通り

cp "//'TAGUCHI.TEST01.COBOL.SOURCE(TSUB04)'" TSUB04.cbl
chtag -tc IBM-1399 TSUB04.cbl

念のため、USS上にコピーしたファイルをish(ISPF Shell)から確認しておきます。
image.png

このUSS上のファイルをGitHubにPushする際、.gitattributesに指定した文字コードによってコード変換が行われます。今回使用する.gitattributesの指定例はこちらです。

.gitattributes
# line endings
* text eol=lf

# file encodings
.gitattributes zos-working-tree-encoding=ibm-1399 git-encoding=utf-8
*.cpy zos-working-tree-encoding=ibm-1399 git-encoding=utf-8
*.cbl zos-working-tree-encoding=ibm-1399 git-encoding=utf-8

GitHub上のリモート・リポジトリーにPushされたファイルの中身をブラウザで確認

image.png

特に問題なく表示できています。

(2)GitHub ⇒ z/OS

image.png

上にアップしたGitHub上のリモート・リポジトリーを、USSの別の場所にクローンし、それをPDSメンバーとしてコピーします。

上と同じリポジトリーなので、使用する.gitattibutesも同じです。
クローンされたファイル

TAGUCHI : /u/TAGUCHI/temp/zosgittest01/cobol : > ls -laT
total 96
                    drwxr-xr-x   2 TAGUCHI  SYS1        8192 Apr 13 11:22 .
                    drwxr-xr-x   9 TAGUCHI  SYS1        8192 Apr 13 11:22 ..
t IBM-1399    T=on  -rw-r--r--   1 TAGUCHI  SYS1        2951 Apr 13 11:22 TMAIN01.cbl
t IBM-1399    T=on  -rw-r--r--   1 TAGUCHI  SYS1         485 Apr 13 11:22 TSUB02.cbl
t IBM-1399    T=on  -rw-r--r--   1 TAGUCHI  SYS1         485 Apr 13 11:22 TSUB03.cbl
t IBM-1399    T=on  -rw-r--r--   1 TAGUCHI  SYS1         706 Apr 13 11:22 TSUB04.cbl

ishで確認
image.png

このファイルをcpコマンドでPDSデータセットにコピーする際にはchtag -rでタグをクリアしてから実施してください。
※textのタグ付け、およびIBM-1399がセットされたままDBCSを含むファイルをコピーしようとするとうまくいきません(コピーのコマンドはエラーメッセージも出力されないので正常に完了したと思ったら、実際にはPDS上にはメンバーが作成されません)。

TAGUCHI : /u/TAGUCHI/zosgittest01/cobol : > chtag -r TSUB04.cbl
TAGUCHI : /u/TAGUCHI/zosgittest01/cobol : > ls -laT | grep TSUB04
- untagged    T=off -rw-r--r--   1 TAGUCHI  SYS1         706 Apr 13 11:52 TSUB04.cbl
TAGUCHI : /u/TAGUCHI/zosgittest01/cobol : > cp TSUB04.cbl "//'TAGUCHI.TEST02.COBOL.SOURCE(TSUB04)'"

コピーされたPDSメンバー確認
image.png

特に問題なく表示できています。

2. GiHubのリモート・リポジトリーをPCにクローンして参照

1-2.(1) でPushしたGitHub上のリポジトリをPC(Windows11)上にクローンしてエディターでみてみます。
ここではコード変換は発生しないはずなので、UTF-8のまま参照できるはず。

(1) VS Code

image.png

VS CodeでGit Cloneして取得したファイルをUTF-8としてエディターで表示
image.png

特に問題なく表示できています。

(2) IDz

image.png

Eclipse上のGitでCloneして取得したリポジトリーをz/OSプロジェクトとして追加し、UTF-8としてエディターで表示
image.png

ちなみにIDzの場合、ファイルのプロパティーでローカルDBCSオプションのSO/SIの使用にチェックを入れると...
image.png

EBCDIC(IBM-1399)にした場合にSO/SIが挿入される位置にマークが付き、UTF-8の状態でも桁連れをチェックすることができます。
image.png

ただ、第3水準、第4水準の文字でうまく機能していないようです。(おそらくサロゲートペアの文字がうまくハンドリングできてなさそう...)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0