【问题标题】:Ruby EBCDIC conversion with String#encode instead of iconv使用 String#encode 而不是 iconv 进行 Ruby EBCDIC 转换
【发布时间】:2013-02-08 13:02:02
【问题描述】:

我以前做得很好:

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

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

【问题讨论】:

    标签: ruby encode iconv ebcdic


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      在Ruby 2.3 the EBCDIC-encoding is added:

      编码

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

      所以这应该有效:

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

      【讨论】:

        【解决方案3】:
        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)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-11
          • 1970-01-01
          • 2011-05-23
          • 2023-03-24
          • 1970-01-01
          • 2018-01-06
          相关资源
          最近更新 更多