我必须将文件中的所有数据转换为压缩十进制格式的 EBCDIC。
文件中的所有数据都是简单的文本格式。
据我所知,我们需要先将 ASCII 转换为 EBCDIC Cp1047 或其他格式,然后应用“压缩十进制”逻辑/代码。(可能是我错了)
转换后的格式应该是“C3 C5 40 F0 C9 F8”(即EBCDIC压缩十进制格式)
我必须将文件中的所有数据转换为压缩十进制格式的 EBCDIC。
文件中的所有数据都是简单的文本格式。
据我所知,我们需要先将 ASCII 转换为 EBCDIC Cp1047 或其他格式,然后应用“压缩十进制”逻辑/代码。(可能是我错了)
转换后的格式应该是“C3 C5 40 F0 C9 F8”(即EBCDIC压缩十进制格式)
压缩十进制(Cobol 中的 Comp3)
您是否有Cobol Copybook ???,如果有,请参阅JRecord Question。JRecord 也有
JRecord的替代品是
注:我是JRecord的作者
将数字转换为压缩十进制非常简单,并且有很多方法可以做到这一点
一种选择是
将整数转换为压缩十进制的 Java 代码
String val = Integer.toString(Math.abs(value));
if (value < 0) {
val = val.substring(1) + "D"
} else {
val += "C";
}
byte[] bytes = (new BigInteger(val, BASE_16)).toByteArray();