c# 中的 ISO 8583 库
ISO 8583 library in c#
我现在在支付网关工作。我们使用的是 ISO 8583 消息传递系统。我面临一些我在下面描述的问题:
我的二进制数据是:
0111101010111010000001000000000100001110111000001100000000000000
我需要将其转换为十六进制值(8字节):
7A BA 04 01 0E E0 C0 00
然后我需要传输为 16 个 EBCDIC 字符(十六进制):
F7 C1 C2 C1 F0 F4 F0 F1 F0 C5 C5 F0 C3 F0 F0F0
然后我需要转为 16 个 ASCII 字符(十六进制):
37 41 42 41 30 34 30 31 30 45 45 30 43 30 30 30
我的问题是如何转换这个二进制数据 EBCDIC 字符和 ASCII 字符。如果有人帮助我,那是非常需要的
在this function的帮助下:
可以先把字节数组转成十六进制字符串,再转成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")));
我现在在支付网关工作。我们使用的是 ISO 8583 消息传递系统。我面临一些我在下面描述的问题: 我的二进制数据是:
0111101010111010000001000000000100001110111000001100000000000000
我需要将其转换为十六进制值(8字节):
7A BA 04 01 0E E0 C0 00
然后我需要传输为 16 个 EBCDIC 字符(十六进制):
F7 C1 C2 C1 F0 F4 F0 F1 F0 C5 C5 F0 C3 F0 F0F0
然后我需要转为 16 个 ASCII 字符(十六进制):
37 41 42 41 30 34 30 31 30 45 45 30 43 30 30 30
我的问题是如何转换这个二进制数据 EBCDIC 字符和 ASCII 字符。如果有人帮助我,那是非常需要的
在this function的帮助下: 可以先把字节数组转成十六进制字符串,再转成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")));