/ / ¿Cómo hago la traducción de ASCII a EBCDIC en Ruby? - ruby, encoding, jruby, ebcdic

¿Cómo hago la traducción de ASCII a EBCDIC en Ruby? - ruby, codificación, jruby, ebcdic

Estoy usando Ruby 1.8.7 en Mac OS X.

¿Cómo convierto la codificación ASCII a EBCDIC para comunicarme con el sistema heredado? ¿Tendría que usarlo para jruby?

Respuestas

2 para la respuesta № 1

Se puede actualizar, pero eso no soluciona necesariamente el problema.

Hay varios tipos de EBCDIC (¡GRACIAS, IBM!), Por lo que deberá identificar el subconjunto que utiliza su mainframe.

Una cosa que aprendí a hacer al programar en elmainframe, oh, hace tantos años, era llamar a algunos de los sysops de mainframe y elegir sus cerebros. Se ocupan de la conversión de otros conjuntos de códigos en EBCDIC durante todo el día, y probablemente tengan una herramienta que pueda hacerlo sobre la marcha.

Una alternativa sería ver si tienen algo que pueda analizar JSON o YAML. Convierta su texto a utf-8, envíelo al mainframe, deje que su traductor se convierta de utf-8 a EBCDIC.


1 para la respuesta № 2

Deberías usar el rubí biblioteca iconv (para versiones de Ruby anteriores a 2.0) o la joya iconv (para Ruby 2+) especificando EBCDIC-US como el conjunto de códigos:

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")
=> "206226226"