Top/文字コード/EBCDICファイルを編集・変換する

文字コード/EBCDICファイルを編集・変換する

銀行系のシステムを開発していると、EBCDICファイルを扱う案件があったりします。
テストデータを作成する際、そのままEBCDICファイルを扱えるエディタが無いかどうか、探してみました。
なお、VBSによる変換スクリプトをお探しの方は本サイトの以下の記事を参照してください。

目次

エディタによる編集

Textplorer (v1.27a)

  • テキストエディタ。
  • EBCDICのファイルをそのまま開いて編集し、書き戻すことができる。
  • Charset>Convert でEBCDICのConversionファイルを選択するだけで変換でき、そのまま保存すればEBICDICのデータができる。

ということでしたが、半角カナがうまく編集できないということで没に。半角カナが不要な案件なら使えそうです。

Stirling (v1.31)

  • バイナリエディタ。左右2画面構成で、右画面にテキストデータを入力していく形式。
  • 設定>キャラクターセット>EBCDIC と設定をしデコードスペースに入力し保存すればEBICDICのデータができる。

ということでしたが、コピーバッファからのテキスト貼り付けが不可、改行入力が不可、ということで没に。

xedit (v178)

  • バイナリエディタ。左右2画面構成で、右画面にテキストデータを入力していく形式。
  • インターフェース含め、Stiringに機能が非常によく似ている。
  • 弱点も同じで、コピーバッファからのテキスト貼り付けが不可、改行入力が不可、ということで没に。

このへんでエディタをあきらめ変換系を試すことにしました。
なお、Unix上であれば、ddやiconvを使うことで変換可能なのですが、Windows上だけで完結させたかったので、Windows上でShift-JISのファイルをEBCDICに変換してくれるツールを探しました。結果は以下の通り。

コンバータによる変換

wdconv

  • VBScriptで作られた変換ツール。コマンドラインでの自動変換が可能。コマンドプロンプトでファイル指定をし文字コードを指定し起動するのみ。

ということでしたが、EBCDICに変換するとなぜか変換結果が不正な状態になりました。
変換後のファイルをStiringで開き、下記の「参考サイト」のEBICDICコード表と照合しましたが、全く異なるコードに変換されています。
OSがWindows 7で、Wordも2013だったので、このコンバータの開発当時とバージョンが違うからでしょうか。
(なお、Shift-JISから、EUC、JIS、UTF-8には変換可能でした。)

iconv for Windows

  1. 以下から「libiconv-1.9.1.bin.woe32.zip」をダウンロード
    http://sourceforge.net/projects/gettext/files/libiconv-win32/1.9.1/
  2. 以下から「gettext-runtime-0.13.1.bin.woe32.zip 」をダウンロード
    http://ftp.gnu.org/gnu/gettext/
  3. 作業用ディレクトリを作成。(「C:\tool\iconv」など)
  4. 2つのZIPファイルを解凍し、「BIN」フォルダ内のファイルを作業用ディレクトリに全部入れる。
  5. バッチを作成して実行。
    .\iconv>iconv -f SHIFT_JIS -t EBCDIC TEST_FILE.TXT > TEST_FILE.EBC

「指定コード未サポート」というエラーであえなく玉砕。「CP930」も「CP-930」もだめ。
「iconv -l」でサポートコードを確認したところ、EBCDIC系は全滅のようです。

Linuxのiconv (GNU libc 2.5)

仕方なくLinuxに頼ることに。ファイルをバイナリ形式でアップロードして実行してみました。

# iconv -f SHIFT-JIS -t EBCDIC-JP-KANA ./TEST_FILE.TXT
iconv: 位置 0 で不正な入力シーケンスがありました

というわけで、これもだめでした。

VBSによる変換

やむなく自分でスクリプトを組むことにして調査を行った結果、Microsoftのサイトに、「VBA」を使った変換用プログラムがありました。
ただ、ExcelもAccessも入っていない場面で使うため、上記コードを部分流用して、「VBS」の変換ツールを自作することにしました。
結果は本サイトの以下のページに記載しました。

ページ新規作成

新しいページはこちらから投稿できます。

TOP