使用String #code而不是iconv进行Ruby EBCDIC转换

时间:2013-02-08 13:02:02

标签: ruby encode iconv ebcdic

我以前做得很好:

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

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

3 个答案:

答案 0 :(得分:1)

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

(以下是文档 - http://rubydoc.info/gems/iconv/1.0.3/frames

答案 1 :(得分: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)

答案 2 :(得分:0)

Ruby 2.3 the EBCDIC-encoding is added中:

  

编码

     

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

所以这应该起作用:

str = 'xx'
str.encode('IBM037')