1

MacOSXでRuby1.8.7を使用しています。

レガシーシステムと通信するために、ASCIIをEBCDICエンコーディングに変換するにはどうすればよいですか。jrubyに使用する必要がありますか?

4

2 に答える 2

2

アップグレードすることはできますが、必ずしも問題が解決するわけではありません。

EBCDICには複数のフレーバーがあります(ありがとうIBM!)ので、メインフレームが使用するサブセットを識別する必要があります。

何年も前にメインフレームでプログラミングするときに私が学んだことの1つは、メインフレームのシスオペのいくつかを呼び出して、その頭脳を選ぶことでした。彼らは一日中他のコードセットからEBCDICへの変換を扱い、おそらくその場でそれを行うことができるツールを持っています。

別の方法は、JSONまたはYAMLを解析できるものがあるかどうかを確認することです。テキストをUTF-8に変換し、メインフレームに送信して、翻訳者にUTF-8からEBCDICに変換させます。

于 2011-01-17T23:20:27.353 に答える
1

コードセットとして EBCDIC-US を指定するRuby iconv ライブラリ(Ruby バージョン 2.0 より前の場合) またはiconv gem (Ruby 2+ の場合) を使用する必要があります。

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")
=> "\206\226\226"
于 2011-01-17T22:18:00.597 に答える