如何在 Ruby 中将 ASCII 转换为 EBCDIC?

发布于 2024-10-12 18:51:28 字数 90 浏览 8 评论 0原文

我在 Mac OS X 上使用 Ruby 1.8.7。

如何将 ASCII 转换为 EBCDIC 编码,以与旧系统通信。 我必须使用 jruby 吗?

I am using Ruby 1.8.7 on Mac OS X.

How do I convert ASCII to EBCDIC encoding, to communicate with legacy system.
Would I have to use to jruby?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沫离伤花 2024-10-19 18:51:28

您可以升级,但这并不一定能解决问题。

EBCDIC 有多种风格(谢谢 IBM!),因此您需要确定大型机使用的子集。

哦,很多年前,我在大型机上编程时学会做的一件事就是打电话给一些大型机管理员,并听取他们的意见。他们整天处理从其他代码集到 EBCDIC 的转换,并且可能有一个可以即时完成此操作的工具。

另一种方法是看看他们是否有可以解析 JSON 或 YAML 的东西。将您的文本转换为 UTF-8,将其发送到主机,让其翻译器从 UTF-8 转换为 EBCDIC。

You can upgrade but that doesn't necessarily solve the problem.

There are multiple flavors of EBCDIC (THANK YOU IBM!) so you'll need to identify the subset your mainframe uses.

One thing I learned to do when programming on the mainframe, oh so many years ago, was to call some of the mainframe sysops, and pick their brains. They deal with conversion from other codesets into EBCDIC all day long, and probably have a tool that can do it on the fly.

An alternative would be to see if they have something that can parse JSON or YAML. Convert your text to UTF-8, send it to the mainframe, let its translator convert from UTF-8 to EBCDIC.

秋风の叶未落 2024-10-19 18:51:28

您应该使用 Ruby iconv 库(用于2.0 之前的 Ruby 版本)或 iconv gem (对于 Ruby 2+) 指定 EBCDIC-US 作为代码集:

irb(main):001:0> require('iconv')
=> true
irb(main):002:0> x=Iconv.new('EBCDIC-US','ASCII')
=> #<Iconv:0x7fb4274d88d8>
irb(main):003:0> x.iconv("foo")
=> "\206\226\226"

You should use the Ruby iconv library (for Ruby versions before 2.0) or the iconv gem (for Ruby 2+) specifying EBCDIC-US as the codeset:

irb(main):001:0> require('iconv')
=> true
irb(main):002:0> x=Iconv.new('EBCDIC-US','ASCII')
=> #<Iconv:0x7fb4274d88d8>
irb(main):003:0> x.iconv("foo")
=> "\206\226\226"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文