文字コード/EBCDICファイルを編集・変換する のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 文字コード/EBCDICファイルを編集・変換する へ行く。
目次
EBCDICファイル
銀行系のシステムを開発していると、EBCDICファイルを扱う案件があったりします。
テストデータを作成する際、そのままEBCDICファイルを扱えるエディタが無いかどうか、探してみました。
エディタによる編集
Textplorer (v1.27a)
テキストエディタ。
- EBCDICのファイルをそのまま開いて編集し、書き戻すことができる
- Charset>Convert でEBCDICのConversionファイルを選択するだけで変換でき、そのまま保存すればEBICDICのデータができる。
ということでしたが、半角カナがうまく編集できないということで没に。半角カナが不要な案件なら使えそうです。
Stirling (v1.31)
バイナリエディタ。左右2画面構成で、右画面にテキストデータを入力していく形式。
- 設定>キャラクターセット>EBCDIC と設定をしデコードスペースに入力し保存すればEBICDICのデータができる。
ということでしたが、コピーバッファからのテキスト貼り付けが不可、改行入力が不可、ということで没に。
xedit (v178)バイナリエディタ。
左右2画面構成で、右画面にテキストデータを入力していく形式。
インターフェース含め、Stiringに機能が非常によく似ている。
弱点も同じで、コピーバッファからのテキスト貼り付けが不可、改行入力が不可、ということで没に。
このへんでエディタをあきらめ変換系を試すことに…。
Unix上であれば、ddやiconvを使うことで変換可能なのですが、Windows上だけで完結させたかったので少し探してみました。
Shift-JISのファイルをEBCDICに変換してくれるツールを探した結果が以下。
コンバータによる変換
wdconv
VBScriptで作られた変換ツール。コマンドラインでの自動変換が可能。コマンドプロンプトでファイル指定をし文字コードを指定し起動するのみ。
ということだったが、EBCDICに変換するとなぜか変換がおかしい。変換後のファイルをStiringで開き、下記の「参考サイト」のEBICDICコード表と照合したが、全く異なるコードに変換されている。
Shift-JISから、EUC、JIS、UTF-8には変換可能だったが、今回の役には立たなかった。OSがWindows 7で、Wordも2013だったので、このコンバータの開発当時とバージョンが違うからかもしれない。
iconv for Windows
- 以下から「libiconv-1.9.1.bin.woe32.zip」をダウンロード
http://sourceforge.net/projects/gettext/files/libiconv-win32/1.9.1/
- 以下から「gettext-runtime-0.13.1.bin.woe32.zip 」をダウンロード
http://ftp.gnu.org/gnu/gettext/
- 作業用ディレクトリを作成。(「C:\tool\iconv」など)
- 2つのZIPファイルを解凍し、「BIN」フォルダ内のファイルを作業用ディレクトリに全部入れる。
- バッチを作成して実行。
.\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を使った変換用プログラムがありました。
それを利用して、VBSで変換ツールを自作しました。
VBS/EBCDICファイルをシフトJISに変換する
VBS/シフトJISファイルをEBCDICに変換する