1

我在 Mac OS X 上使用 Ruby 1.8.7。

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

4

2 回答 2

2

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

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

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

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

于 2011-01-17T23:20:27.353 回答
1

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

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"
于 2011-01-17T22:18:00.597 回答