首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EBCDIC到ASCII的转换

EBCDIC到ASCII的转换
EN

Stack Overflow用户
提问于 2019-06-04 13:08:55
回答 2查看 3.5K关注 0票数 1

我有EBCDIC格式的大型机文件,我想将这些文件转换为ASCII格式。

我尝试过使用python2.6将EBCDIC转换为ASCII,但是有很多问题,比如压缩字段没有转换,记录数量增加了。

有没有办法将具有压缩字段的EBCDIC文件转换为ASCII格式。

EN

回答 2

Stack Overflow用户

发布于 2020-07-21 02:40:41

如果您已经下载了该文件,则可以使用命令行在Linux或MacOS机器上轻松地将其从EBCDIC转换为ASCII。为此,您需要使用dd命令。

下面是它使用的一些参数的快速概述:

dd [bs=size] [cbs=size] [conv=conversion] [count=n] [ibs=size] [if=file] [imsg=string] [iseek=n] [obs=s] [of=file] [omsg=string] [seek=n] [skip=n]

上面有更多的参数,要检查所有可用参数,只需执行命令:man dd,它将显示所有其他可用参数以及每个参数的解释。

在您的情况下,您应该从以下方面开始:

代码语言:javascript
复制
dd conv=ascii if=EBCDIC_file.txt of=ASCII_file.txt

其中,EBCDIC_file.txt是您输入的EBCDIC文件的文件名,而ASCII_file.txt将是作为输出创建的文件,所有字节都从EBCDIC转换为ASCII码。

同样,您可以通过使用conv=ebcdic将文件从ASCII码转换为EBCDIC码来进行相反的操作。

以下是dd在web上的手册页:https://www.man7.org/linux/man-pages/man1/dd.1.html

当你在你的文件中提到压缩时,你是说整个文件都是从大型机压缩过来的吗?它可能来自TERSED (通过在大型机上使用简明实用程序)。如果是这样的话,有一个公共版本的terse可以在DOS、Linux、MacOS、AIX和其他操作系统上运行。它可以在cbtape站点上找到:http://www.cbttape.org/ftp/cbt/CBT892.zip

票数 2
EN

Stack Overflow用户

发布于 2019-06-04 15:45:30

选项

一些选项

  • 在大型机上将文件转换为文本文件(排序或eastrieve都可以做到这一点)
  • 如果它是一次性的,则Fileaid/文件主控可以将文件转换为大型机上的文本
  • 如果它是一次性的,则RecordEditor应该能够使用Cobol Copybook编辑该文件。它还可以生成JRecord代码来读取文件。
  • 如果文件中只有一种记录类型,CobolToCsv可以使用Cobol Copybook将文件转换为CSV。
  • the JRecord让你在COBOL中读取Cobol Copybook有一个Cobol复制实用程序可以让你完成cobol到cobol的复制。如果只有一种记录类型,您可以
    • Copy the EBCDIC Copybook to等效Ascii copybook (ext字段被转换,二进制字段保持不变)。如果要将大型机Cobol文件转换为在Windows / Linux Cobol system
    • 中使用,将EBCDIC二进制拷贝本复制到Ascii Text copybook

,这将非常有用

  • Stingray project提供了对python

中cobol文件的访问。

CobolTCsv

例如,要使用CobolToCsv将Cobol数据文件转换为Csv (单记录类型):

代码语言:javascript
复制
java -jar ../lib/Cobol2Csv.jar -I In/DTAR020.bin  -O Out/o_DTAR020_space.csv ^
         -C DTAR020.cbl  ^
         -Q DoubleQuote  -FS Fixed_Length    ^
         -IC CP037 -Delimiter ,

哪里

  • In/DTAR020.bin是输入Cobol数据file
  • Out/o_DTAR020_space.csv是输出Csv file
  • **DTAR020.cbl **是Cobol Copybook
  • Fixed_Length将其标识为固定长度文件(在大型机上为FB)

RecordEditor

要编辑该文件,请参见How do you edit a Binary Mainframe file in the RecordEditor using a Cobol Copybook (pt1)

  • To generate JRecord

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56437665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档