0

我以前做得很好:

Iconv.iconv('ASCII', 'EBCDIC-US', someEBCDICstring)

从 ruby​​ 1.9 开始,我收到了警告:

iconv will be deprecated in the future, use String#encode instead.

但我在 Encoding 类中找不到任何 EBCDIC 或 cp37、cp500、cp875... 的引用:

p Encoding.name_list

我应该从某个地方导入它吗?我可以自己添加吗?

4

3 回答 3

1

您仍然可以使用 gem - https://rubygems.org/gems/iconv

(这里是文档 - http://rubydoc.info/gems/iconv/1.0.3/frames

于 2013-11-21T18:37:57.843 回答
1

Ruby 2.3 中添加了 EBCDIC 编码

编码

新编码::IBM037(别名 ebcdic-cp-us;虚拟)

所以这应该工作:

str = 'xx'
str.encode('IBM037')
于 2019-05-28T14:48:17.247 回答
0
require 'iconv' # sudo apt-get install ruby-dev && sudo gem install iconv

这对我有用...

# set up translation to EBCDIC
trsl = Iconv.new('EBCDIC-US','ASCII')

# translate value
ebcdic = trsl.iconv(somestring)
于 2016-09-16T04:07:34.277 回答