asp.net サイトでユーザーが生成したデータを Unisys メインフレームにアップロードしようとしています。クライアントは、FTP を使用してファイルをアップロードするのではなく、データを Unisys Mainframe Windows 共有に直接ロードすることを望んでいると判断しました。通常、FTP は ASCII と EBCDIC の間の変換を行います。
問題は、ファイルの内容を EBCDIC としてエンコードしたかどうかに関係なく、メインフレームがファイルを ASCII として認識することです。
テストコードは次のとおりです。
string dataToWrite = "ACHR0000000000575TEST EBCDICPAYEE 8899007500038159 0000001000160330 ".ToUpper();
Encoding ebcdic = Encoding.GetEncoding("IBM037");
List<byte> bytes = new List<byte>();
bytes.AddRange(Encoding.Convert(Encoding.ASCII, ebcdic, Encoding.ASCII.GetBytes(dataToWrite)));
using (var unc = new UNCAccessWithCredentials())
{
// get access to the reconciliation file share using credentials in the config
string path = @"\\xxx\RECONDEV";
unc.NetUseWithCredentials(path, "XXX","", "XXX");
string fileName = Path.Combine(path, "ACH");
using (var binWriter = new BinaryWriter(File.OpenWrite(fileName)))
{
binWriter.Write(bytes.ToArray());
binWriter.Flush();
binWriter.Close();
}
}
質問
1) ファイルを ASCII として作成し、メインフレーム ジョブでユーティリティを呼び出してファイル EBCDIC を変換する必要がありますか? もしそうなら、ユーティリティの名前は何ですか? メインフレームの運用担当者は 1 つも知りません。
2) .net 内で実際に EBCDIC ファイルを作成する方法はありますか? EBCDIC エンコーディングは機能していますが、ファイルの種類が異なると思われ、何も見つけることができませんでした。
私は文字通りメインフレームで 20 年間何もしていないので、理解が深まりません。
前もって感謝します。クリス