C# ISO 8583 c语言库#

C# ISO 8583 c语言库#,c#,iso8583,C#,Iso8583,我现在在一个支付网关工作。我们使用的是ISO 8583消息传递系统。我面临一些问题,我可以描述如下: 我的二进制数据是: 0111101010111010000001000000000100001110111000001100000000000000 我需要将其转换为十六进制值(8字节): 然后我需要转换为16个EBCDIC字符(十六进制): 然后我需要传输16个ASCII字符(十六进制): 我的问题是如何转换这个二进制数据EBCDIC字符和ASCII字符。如果有人帮助我,这是非常需要的借助

我现在在一个支付网关工作。我们使用的是ISO 8583消息传递系统。我面临一些问题,我可以描述如下: 我的二进制数据是:

0111101010111010000001000000000100001110111000001100000000000000 
我需要将其转换为十六进制值(8字节):

然后我需要转换为16个EBCDIC字符(十六进制):

然后我需要传输16个ASCII字符(十六进制):

我的问题是如何转换这个二进制数据EBCDIC字符和ASCII字符。如果有人帮助我,这是非常需要的

借助于: 您可以先将字节数组转换为十六进制字符串,然后将其转换为EBCDIC编码,最后再获取字符的十六进制字节码:

    var hexdata = new[] { 0x7A, 0xBA, 0x04, 0x01, 0x0E, 0xE0, 0xC0, 0x00 };    
    var asciiString = string.Join("", hexdata.Select(num => num.ToString("X2")));
    var asciiBytes = asciiString.Select(ch => (byte)ch).ToArray(); // It is safe, as we cannot have any unicode characters here

    var ebcdicData = ConvertAsciiToEbcdic(asciiBytes);

    var ebcdicString = string.Join(" ", ebcdicData.Select(ch => ((byte)ch).ToString("X2")));    
    var asciiHexString = string.Join(" ", asciiBytes.Select(ch => ((byte)ch).ToString("X2")));

查看MSDN上的
系统编码
类内容。
F7 C1 C2 C1 F0 F4 F0 F1 F0 C5 C5 F0 C3 F0 F0F0
37 41 42 41 30 34 30 31 30 45 45 30 43 30 30 30
    var hexdata = new[] { 0x7A, 0xBA, 0x04, 0x01, 0x0E, 0xE0, 0xC0, 0x00 };    
    var asciiString = string.Join("", hexdata.Select(num => num.ToString("X2")));
    var asciiBytes = asciiString.Select(ch => (byte)ch).ToArray(); // It is safe, as we cannot have any unicode characters here

    var ebcdicData = ConvertAsciiToEbcdic(asciiBytes);

    var ebcdicString = string.Join(" ", ebcdicData.Select(ch => ((byte)ch).ToString("X2")));    
    var asciiHexString = string.Join(" ", asciiBytes.Select(ch => ((byte)ch).ToString("X2")));