• 締切済み

EBCDIC⇒SJIS変換の方法

ホストから取得したデータがEBCDICでして、このデータを活用するために、SJISに変換して見られるようにしたいのですが、EBCDIC⇒SJISの文字コード変換ツールをご存知の方いらっしゃいますでしょうか? 過去の質問を検索したのですが、SJISへの変換をされている方がいらっしゃらず、困っております。 アドバイス、よろしくお願いいたします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.7

>期待している想定結果にも漢字は含まれていなかったように記憶しています。 SJISも漢字を含んだコードの名前です。漢字を含んでなければSJISとは言いません。いわゆる半角の英数記号しか含まれないのであれば、Unix/Linuxの dd というコマンドで変換できます。 dd conv=ascii <inputfile >outputfile 半角文字だけなら数が少ないので自作も簡単です。ググれば対応表もすぐ見つかります。対応表は何種類かあり、「英大文字・数字・大部分の記号」は共通ですが、「一部の記号・英小文字・半角仮名」が異なります。

  • kent85
  • ベストアンサー率52% (38/73)
回答No.6

もう、いろいろ出ていますが。 最低限ホストマシンの機種。ホスト上のEBCDICのコード表を入手してください。 EBCDICだけだったにせよ、ASCIIで表現できないコードのときに エラー発生とするか、20H/00Hに強制変換するとか、そちらも気にしてください。 フリーという意味ではないですけど、35/40歳以上の人とか そのホストがらみの仕事をした人に聞けば、ライブラリかアプリかは別として たぶん持ってると思いますよ。

lucky35
質問者

お礼

アドバイスありがとうございます。 ホストの機種は…マシンが手元にないのでわかりませんが、NECのマシンのようです。 私たちの部署は開発を行なっているのではなく、メーカーのシステム部のため、日々のルーチンワーク以外は何をするにもみんなが手探り状態です。 もう一度先輩に確認してもらうことにします。 説明不足の質問で申し訳ありませんでした。

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.5

EBCDICは、いわゆる半角文字だけのコードなので漢字はありません。 漢字が含まれているとすると、IBM漢字コード、もしくは日立漢字コード(KEIS)、もしくは富士通漢字コード(JEF)、もしくはNEC漢字コード(JIPS)のどれかだと思います。それぞれ別物です。 一番簡単なのは、ホスト上でftpサーバーを動かして、PCでftp.exeで受信して、その際に漢字コード変換を指定することです。 IBM漢字コード以外なら、JISをベースにしてるので、JIS78/JIS83/JIS90/JIS2004の字形の違いを気にしないなら単純な変換で可能です。そうじゃなければ変換表が必要。

lucky35
質問者

お礼

アドバイスありがとうございます。 データは英数字で1レコード46バイトのものです。 別の仕組みでの印刷のテストをしたいのですが、期待している想定結果にも漢字は含まれていなかったように記憶しています。 もしかしてそもそもEBCDICじゃないのでしょうか…。 もうちょっと周囲の人に確かめてみようと思います。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.4

>>実は別の仕組みの検証用データを作成するために必要としていたため、できればフリーのツールで探しておりました。 仕事で使われるならば、有償ソフトでもいいのでは?ってよく言う、建前は別にしても、漢字コードの変換が無ければフりーでいいですし、自作も可能でしょうね。(昔、PC-8801で作りました) が、漢字コードがある場合は、変換テーブルを必要とします。こういうのは、メーカの情報がないと作れませんし、変換用方程式で1発というわけにいきません。作成の手間も大変なので、フりーは無いような気がします。

lucky35
質問者

お礼

たびたびのアドバイス、ありがとうございます。 恒久的に使用するものなら買ってもらえるみたいですが…。一度きりだと無理なようです。 ちなみに、中身のデータは英数字46バイトのもので漢字は含まれていません。新しい仕組みで印刷を試すのに「EBCDICだから無理だそうだ。なんとかASCIIに変えられないか?方法を探してほしい」という指示だったんです…。他の方もおっしゃっていますが、フリーソフトの使用はやっぱり難しそうなんですね…。

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.3

たびたび申し訳ありません。 補足です。  ブラウザでアクセスしてみてもうまくDLできなかったので普段わたくしが利用しているFTPアクセスをお勧めします。 FTP設定は サーバ名:ftp.simtel.net アカウント:anonymous パスワード:メールアドレス(普通の匿名アクセス) リモートパス:「/.2/simtelnet/msdos/txtutl」 です。 ただし、海外のツールなので「EBCDIC」のみで「EBCDIK」には非対応です。

lucky35
質問者

お礼

何度もアドバイスをいただき、ありがとうございます。 まだシステム部に異動して半年なので教えていただいたFTPアクセスも私ではよくわからず3年目の先輩に見てもらっています。 詳しく教えてくださりありがとうございました。

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.2

はじめまして。 参考URLのsimtelのサイトから「ebcdic」でサーチするとたくさん出てきます。 インターネットの無いDOS時代にはこのBBSサーバやCD-ROMは重宝したものですが、今は知らない人の方が多いのでしょうか。 orz

参考URL:
http://www.simtel.net/
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

以下のような商品があります。私は、F*TRAN+で、富士通のJEF相手しか使ったことありませんけど、仕様を見るとIBM汎用機でもOKのようですよ。 http://www.bsc.fujitsu.com/services/ftran/ftranp/

lucky35
質問者

お礼

さっそくのお返事、ありがとうございます。 実は別の仕組みの検証用データを作成するために必要としていたため、できればフリーのツールで探しておりました。 私の説明が不足しており申し訳ありません。

関連するQ&A

  • EBCDICを変換したい

    Windows NT を使用していますが、文字コードEBCDICを変換してtextで見れるようにできるソフトはあるのでしょうか? ちなみに当方UNIXに関してはてんでオンチです。 どなたか知っている方、宜しくお願いします。

  • IBM漢字コード⇒SJIS変換方法

    IBM漢字コードで受取ったファイルをJAVAにてSJISに変換したいのですが、変換方法がわかりません。 一度unicode変換した後、SJISに変換する必要があるのでしょうか? 過去の検索を見てもヒットせず困っております。 どなたか変換方法がわかる方ご教示いただけませんでしょうか。

  • MS-DOS Txt形式をEBCDIC形式にデータ変換が出来るツールを探しています

    MS-DOSのTxt形式をEBCDIC形式にデータ変換を行いたいのですが 出来るツールを探しています (例) Txtデータを取り込む ⇒ 同一内容でEBCDIC形式で保存を行いたいのです

  • EBCDICコードを16進数にファイル単位で変換

    お世話になります。 EBCDICをSHIFT-JISに変換するツールを使用して変換を行いましたが一部で文字化けしていました。 この文字化けの原因調査の為、元ネタファイルを16進数に変換して調べたいのですがそういったことは可能でしょうか。 どんな方法でも結構です。 宜しくお願いします。

  • 2バイト文字をJEFからSJISに変換したい

    文字コード、JEFからSJISへ変換したいのですが、 2バイト文字をどのように置き換えればよいでしょうか? JEFコードは、'28'~'29'で括った範囲が漢字コード扱いになるということでなんとかできそうな気がしますが方法が思いつきません。 又、JEFコードからSJISへ変換してくるソフトウェア(UNIX版)などありますでしょうか?

  • SJIS⇔UTF-8の文字コード変換

    SJIS⇔UTF-8の文字コード変換をするプログラムを作りたいのですが、簡単な方法があれば教えてください。 できれば、文字コードをケース文で判断して・・・のような処理ではないほうが、ありがたいです。

  • JAVAでSJISのコード変換

    JAVAで、UnicodeからSJISへのコード変換を行った上で ファイル出力を行いたいです。 たとえば文字列中にある「(1)」の文字コードが以下である時 ------------------------------- SJIS:8744 - UNICODE:2464 ------------------------------- 2464のコードを8744に変換した上でファイル出力したいです。 処理として、以下の様な形を考えているのですが 文字化けしてしまします。 ------------------------------- String source = "(1)あああああ"; 文字列の数分ループ処理↓ int code = (int) (source[x].charAt(i)); if (code == 2464) { strBuff.append(String.valueOf((char) (8744))); } ------------------------------- Unicodeで扱われているので「getByte("SJIS")」などとしているのですが 同様の結果となります。 何か良い手はないものでしょうか?

    • ベストアンサー
    • Java
  • SFU3.5のiconvコマンドで文字コード変換(EUC->SJIS)すると'-'が'_'に誤変換されてしまう

    OS:Windows Server 2003 SFUバージョン:Microsoft Windows Services for UNIX 3.5 ファイルの文字コードをEUCからSJISに変換するため以下コマンドを実行しました。 >iconv -f 20932 -t 932 EUC_FILE.txt > SJIS_FILE.txt この後、変換後のSJIS_FILE.txtを参照すると、ほとんど問題ないのですが一点だけ問題があり、'-'が'_'に誤変換されていました。 例を挙げると、以下のような誤変換です。 ○ スウェ-デン輸出信用銀行 × スウェ_デン輸出信用銀行 もしかすると、EUC=20932,SJIS=932と指定しましたが、このコードが間違っているのでしょうか?参考までにコードのリストを以下に出力します。(明らかに関係なさそうな出力は文字数節約のため削除します。) >iconv -l 10001 (MAC - 日本語) 1146 (IBM EBCDIC - 英国 (20285 + ユーロ)) 20127 (US-ASCII) 20261 (T.61) 20269 (ISO 6937 Non-Spacing Accent) 20290 (IBM EBCDIC - 日本語 カタカナ拡張) 20932 (JIS X 0208-1990 & 0212-1990) 20936 (簡体字中国語 GB2312) 21027 (Ext Alpha Lowercase) 437 (OEM - 米国) 500 (IBM EBCDIC - インターナショナル) 50220 (ISO-2022 日本語、半角カタカナなし) 50221 (ISO-2022 日本語、半角カタカナ) 50222 (ISO-2022 日本語 JIS X 0201-1989) 932 (ANSI/OEM - 日本語 Shift-JIS) 936 (ANSI/OEM - 簡体字中国語 GBK) 949 (ANSI/OEM - 韓国語) 950 (ANSI/OEM - 繁体字中国語 Big5) 54936 (GB18030 簡体字中国語) 28603 (ISO 8859-13 ラテン 7) 65000 (UTF-7) 65001 (UTF-8) 以上、解決策などご存知の方どうぞご教授のほど、よろしくお願いいたします。

  • EUCからSJISに上手く変換できない

    以下のような関数でEUCからSJISに変換しているのですが、 「渕」という字が文字化けしてしまいます。 どんなふうに修正したらいいか、教えて下さい。 【関数】 void euc2sjis(BYTE *code1, BYTE *code2) {   if (*code1 & 0x01) {     *code1 >>= 1;     if (*code1 < 0x6F)       *code1 += 0x31;     else       *code1 += 0x71;     if (*code2 > 0xDF)       *code2 -= 0x60;     else       *code2 -= 0x61;    } else {     *code1 >>= 1;     if (*code1 < 0x6F)       *code1 += 0x30;     else       *code1 += 0x70;     *code2 -= 0x02;    } } 【補足】 「渕」は、EUCではDEB0      SJISでは9FAEだと思います。

  • PL/SQLでSJISの文字コードを取得可能でしょうか

    失礼いたします。 PL/SQLでSJISの文字コードを取得したいのですが可能でしょうか。 文字コードのみを取得したいので、CONVERT関数やCHR関数などの変換関数は不要です(WIN拡張以外の外字判定に使用するため)。 ORACLEは8iです。 どなたかご存知の方、いらっしゃいましたら教えていただけませんでしょうか。 よろしくお願いいたします。

専門家に質問してみよう