From: Sako Date: 2003-11-11T11:37:26+09:00 Subject: [ruby-list:38786] Re: convert EBCDIC to SJIS 酒匂です。 At 04:09 03/11/11, T.Fukagawa wrote: >Solaris(SJIS) と IBM AS400(EBCDIC) とで、ファイルの送受信をすることに >なり、SJIS->EBCDIC / EBCDIC->SJIS のコード変換が必要になりました。 >google で調べた感じでは、rgettext を使用すればできそうな記述がありまし >たので、ruby-gettext-package-0.5.1.tar.gz をインストールしましたが、以 >下のようなエラーになってしまいました。 ruby の ml では相応しくありませんが。。。 実は Java を使うと様々な変換が自由にできますので 上記の変換も標準ライブラリの範囲で可能です。 たとえば下のサンプルは CP930 (IBM EBCDIC のカナDBCS 拡張コード) から Shift JIS への変換プログラムです。 Java のソースコードは公開されていますので、 ちょっと頑張れば ruby 版を作るのも難しくないとは思います。。。 (^-^;; // import java.io.*; // public class CP930toSJIS { public static void main(String args[]) { int c; try { FileInputStream fin = new FileInputStream(args[0]); InputStreamReader isr = new InputStreamReader(fin, "Cp930"); FileOutputStream fout = new FileOutputStream(args[0]+".SJIS"); OutputStreamWriter osw = new OutputStreamWriter(fout, "SJIS"); while ((c = isr.read()) > 0) { osw.write(c); } osw.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } } ----------------------------------------------------------------------- -- to design is human, design is our business http://www02.so-net.ne.jp/~sakoh/ mailto:sakoh@ba2.so-net.ne.jp Designers' Den Corporation : and for now, No Peace, No Future. -----------------------------------------------------------------------