c# 无法在 Unisys 大型机上创建 EBCDIC 文件 Windows
c# Cannot create EBCDIC file on Unisys Mainframe Windows Share
我正在尝试将 asp.net 站点上用户生成的数据上传到 Unisys 大型机。我的客户决定他们希望我将数据直接加载到 Unisys 大型机 windows 共享上,而不是使用 FTP 上传文件。 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?如果是这样,该实用程序的名称是什么?大型机操作人员不知道。
2) 有什么方法可以在 .net 中实际创建 EBCDIC 文件吗? EBCDIC 编码有效,但我认为文件类型不同,我无法找到任何东西。
我真的已经有 2 年没有用大型机做过任何事情了,所以我力不从心。
提前致谢。
克里斯
仅供参考,一位顾问建议我们在将文件复制到大型机共享时使用名为 MCPCopy 的实用程序将文件从 ASCII 流复制并转换为 EBCDIC。该实用程序可以作为 NXExtend 的一部分安装。 ASP.Net 站点使用的命令行是:
c:\Windows\MCPCopy.exe {SourceFile} {DestinationFile} /Y /Z:SR /D:80
希望对您有所帮助
我正在尝试将 asp.net 站点上用户生成的数据上传到 Unisys 大型机。我的客户决定他们希望我将数据直接加载到 Unisys 大型机 windows 共享上,而不是使用 FTP 上传文件。 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?如果是这样,该实用程序的名称是什么?大型机操作人员不知道。
2) 有什么方法可以在 .net 中实际创建 EBCDIC 文件吗? EBCDIC 编码有效,但我认为文件类型不同,我无法找到任何东西。
我真的已经有 2 年没有用大型机做过任何事情了,所以我力不从心。
提前致谢。 克里斯
仅供参考,一位顾问建议我们在将文件复制到大型机共享时使用名为 MCPCopy 的实用程序将文件从 ASCII 流复制并转换为 EBCDIC。该实用程序可以作为 NXExtend 的一部分安装。 ASP.Net 站点使用的命令行是:
c:\Windows\MCPCopy.exe {SourceFile} {DestinationFile} /Y /Z:SR /D:80
希望对您有所帮助