使用JAVA实现EBCDIC到ASCII的转换

使用JAVA实现EBCDIC到ASCII的转换,java,ascii,mainframe,ebcdic,Java,Ascii,Mainframe,Ebcdic,我正在尝试将大型机定长文件从EBCDIC格式转换为ASCII格式。目前,我正在使用jzosapi(ZFile)读取文件并逐字段转换。通过读取记录或行的整个字节,是否可以在不知道文件布局(也称为COPYBOOK)的情况下进行转换?如果是,如何处理压缩小数和二进制值 是否可以在不知道文件布局的情况下进行转换 (抄本)只读取记录或行的整个字节 没有 文本字段必须从EBCDIC转换为ASCII。不得转换二进制和压缩十进制字段。如果您转换二进制字段,那么您将改变它们的值,您有可能(可能?确定?)破坏它们的

我正在尝试将大型机定长文件从EBCDIC格式转换为ASCII格式。目前,我正在使用jzosapi(ZFile)读取文件并逐字段转换。通过读取记录或行的整个字节,是否可以在不知道文件布局(也称为COPYBOOK)的情况下进行转换?如果是,如何处理压缩小数和二进制值

是否可以在不知道文件布局的情况下进行转换 (抄本)只读取记录或行的整个字节

没有

文本字段必须从EBCDIC转换为ASCII。不得转换二进制和压缩十进制字段。如果您转换二进制字段,那么您将改变它们的值,您有可能(可能?确定?)破坏它们的值

来自大型机的二进制字段将是big-endian,您可能需要将它们转换为little-endian+在大型机上,半字中的10是x'000A',而在小型endian机器上,它是x'0A00'

压缩十进制字段可能有隐含的十进制位置。如果您的文件包含x'12345C',可能表示+123.45或+12345。字段的格式告诉您如何解释数据

在不了解记录布局(包括字段格式)的情况下,无法进行转换

根据我的经验,避免这些困难的最佳方法是在大型机上预处理文件,将所有二进制和压缩的十进制字段转换为嵌入显式符号和小数点的文本。然后,文件可以安全地通过代码页(本例中为EBCDIC到ASCII)转换

这样的预处理可以通过大型机排序实用程序轻松完成,该实用程序通常擅长数据转换

是否可以在不知道文件布局的情况下进行转换 (抄本)只读取记录或行的整个字节

没有

文本字段必须从EBCDIC转换为ASCII。不得转换二进制和压缩十进制字段。如果您转换二进制字段,那么您将改变它们的值,您有可能(可能?确定?)破坏它们的值

来自大型机的二进制字段将是big-endian,您可能需要将它们转换为little-endian+在大型机上,半字中的10是x'000A',而在小型endian机器上,它是x'0A00'

压缩十进制字段可能有隐含的十进制位置。如果您的文件包含x'12345C',可能表示+123.45或+12345。字段的格式告诉您如何解释数据

在不了解记录布局(包括字段格式)的情况下,无法进行转换

根据我的经验,避免这些困难的最佳方法是在大型机上预处理文件,将所有二进制和压缩的十进制字段转换为嵌入显式符号和小数点的文本。然后,文件可以安全地通过代码页(本例中为EBCDIC到ASCII)转换


这种预处理可以通过大型机排序实用程序轻松完成,该实用程序通常擅长数据转换。

EBCDIC和ASCII是文本格式,没有压缩的十进制或二进制值。我建议您确定确切的格式是什么。EBCDIC和ASCII是文本格式,没有压缩的十进制或二进制值。我建议你弄清楚确切的格式是什么。