sshfs EBCDIC から ASCII
質問
私がやりたいのは、ローカル PC 上の USS 経由でメインフレーム上のいくつかのファイルを sshfs 経由でマウントできるようにすることです。それはできますが、sshfs は EBCDIC から ascii/unicode への変換を直接実行しません。設定できるフラグはありますか。
あるいは、SSHFS に追加できるように EBCDIC から ASCII への変換を行うライブラリを知っている人はいますか?
乾杯
マーク
解決
ただし、透過的な文字セット変換は非常に危険なゲームであることに注意してください。そうすることを絶対に確信していますか? 一度もない SSHFS経由でEBCDICファイル以外のものを読み取りますか?バイナリデータがある場合はどうなるでしょうか?
一部のシステムでは、過去に透過的な変換が使用されていました。
- 多くのバイナリダウンロードを台無しにするFTPの悪名高い「ASCIIモード」
- Linux の vfat ファイルシステムには次のような注意事項があります。「計算された lseek を実行するプログラムは、カーネル内のテキスト変換を好みません。この翻訳によってデータが破損した人もいます。気をつけて!」
したがって、その結果を認識することを強くお勧めします。
EBCDIC を処理できるエディタを使用してみてはいかがでしょうか。Vim 例:(コンパイルされていれば)実行できます。
他のヒント
文字セット変換用のライブラリがいくつかあります — iconv (通常は C ライブラリの一部です。たとえばを参照してください iconv_open
) そして GNU 再コード 思い浮かぶ。
私は多くの時間が元の質問から経過したが、私はここに情報を残しておきます知っている:
私は、ASCIIとEBCDIC間の自動変換を追加しsshfsのためのパッチを書いてきました。これは、ここで見つけることができます: https://github.com/vadimshchukin/sshfs-ebcdicする
パッチが変換される必要があるファイルのための正規表現を定義する「-t」コマンドラインオプションを追加します。例えばsshfs -t".*"
すべてのファイルの変換を定義します。
私は、必要に応じてEBCDICの様々な「味」があるので、「ハード・コード」の変換テーブルとiconvが私のシステムでEBCDICとしてASCII間のテキストを翻訳しませんでしたしなければなりませんでした。ここでの利点は、必要に応じて、誰かが簡単にその変換テーブルを変更することができるということです。
私は勝利-sshfsのための同じパッチを書いところでます。