如何在 Ruby 中将 ASCII 转换为 EBCDIC?
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以升级,但这并不一定能解决问题。
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.
您应该使用 Ruby iconv 库(用于2.0 之前的 Ruby 版本)或 iconv gem (对于 Ruby 2+) 指定 EBCDIC-US 作为代码集:
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: