我正在尝试将EBCDIC COMP-3字段转换为ASCII值,但是这种方法行不通。但二进制COMP-3字段可以转换为ASCII值。请帮助我理解这是否可能。即使使用其他Java库也可以。我尝试并搜索了很多,但没有找到确切的答案。
更新:
在我的上一个问题中,二进制应该是可行的。这是我收到的答案,但是关于EBCDIC COMP-3没有明确的说明。
复制本:
更新:
在我的上一个问题中,二进制应该是可行的。这是我收到的答案,但是关于EBCDIC COMP-3没有明确的说明。
复制本:
001700 01 EMP-RECORD.
001900 10 EMP-NO PIC 9(10).
002000 10 EMP-NAME PIC X(30).
002100 10 EMP-ADDRESS PIC X(30).
002200 10 EMP-SALARY PIC S9(8)V9(2) COMP-3.
002200 10 EMP-ZIPCODE PIC 9(4).
BINARY COMP-3 文件:可以进行转换。 ËÍ>ÁÁ% ,Í_/Ê Ê Â/>Å/%?ÊÁ Á~ ¢|ëá&ç ïçñèá ãñá<à ÊÊ>
EBCDIC COMP-3: 无法转换
0000001001suneel kumar r city e¡5671
程序:
public static void main(String args[]) throws Exception {
String salesFile = "empcompnewbinary.txt";
String copybookName = "EMPCOPYBOOK.txt";
AbstractLine saleRecord;
int fileStructure = Constants.IO_FIXED_LENGTH;
CobolIoProvider ioProvider = CobolIoProvider.getInstance();
AbstractLineReader reader = ioProvider.getLineReader(fileStructure, Convert.FMT_MAINFRAME,
CopybookLoader.SPLIT_NONE, copybookName, salesFile);
while ((saleRecord = reader.read()) != null) {
System.out.print(saleRecord.getFieldValue("EMP-NO").asString() + "-"
+ saleRecord.getFieldValue("EMP-NAME").asString() + "-"
+ saleRecord.getFieldValue("EMP-ADDRESS").asString() + "-"
+ saleRecord.getFieldValue("EMP-SALARY").asDouble() + "-"
+ saleRecord.getFieldValue("EMP-ZIPCODE").asString());
}
reader.close();
}