【发布时间】:2020-10-17 14:44:08
【问题描述】:
我正在寻找可以将 EBCDIC 二进制文件转换为 ASCII 的 PHP 代码。这个 EBCDIC 文件也有一些打包的数据字段,代码应该也可以解包这些字段,并以可读的格式显示它们。
EBCDIC 文件遵循 CP037 格式。
该文件具有以下定义。正如您在下面看到的,第一个压缩值从第 7 个字符开始,长度为 18 个字符。
******************************************************************
* COBOL DECLARATION FOR TABLE CUST_BILL *
******************************************************************
01 DCL-CUST-BILL.
10 FILLER PIC X(05).
10 TB01196-BL-TYP-CD PIC X(2).
10 TB01196-INVOICE-NO PIC S9(18) COMP.
10 TB01196-CUST-ID-NO PIC S9(9) COMP.
10 TB01196-ACCT-NO PIC S9(9) COMP.
10 TB01196-BL-CYC-NO PIC X(2).
10 TB01196-CYC-MTH-YR PIC X(6).
10 TB01196-JOB-ITERATION-NO PIC S9(4) COMP.
10 TB01196-BL-DISC-APLIED-PCT PIC S9(5)V9(2) COMP-3.
10 TB01196-BL-PREV-INV-RM-AMT PIC S9(9)V9(2) COMP-3.
10 TB01196-BL-PMT-MADE-AMT PIC S9(9)V9(2) COMP-3.
10 TB01196-BL-TOT-CUR-CHG PIC S9(9)V9(2) COMP-3.
10 TB01196-BL-TOT-REMIT-AMT PIC S9(9)V9(2) COMP-3.
10 TB01196-BL-PEND-IND PIC X(1).
10 TB01196-BL-FED-EX-TX PIC S9(7)V9(2) COMP-3.
10 TB01196-BL-ST-LCL-SLS-TX PIC S9(7)V9(2) COMP-3.
10 TB01196-BL-OTH-TX PIC S9(7)V9(2) COMP-3.
10 TB01196-BAL-FORWARD-AMT PIC S9(9)V9(2) COMP-3.
10 TB01196-BL-PRINTED-IND PIC X(1).
10 TB01196-DB-USERID PIC X(8).
10 TB01196-DB-TMSTAMP PIC X(26).
10 CUST-ACCT-INT-SRVC-CHG PIC S9(7)V99 COMP-3.
******************************************************************
* THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 20 *
******************************************************************
这是 EBCIDIC 的表示:
这是我试图实现的转换后的 ASCII 格式:
【问题讨论】:
标签: php type-conversion file-conversion unpack ebcdic