Ebc编码与asc编码转换

Ebc编码与asc编码转换


publicclassTestUtil {

	privatestaticbyte[] ASCII2EBCDIC = newbyte[256];
	privatestaticbyte[] EBCDIC2ASCII = newbyte[256];

	static {
		ASCII2EBCDIC[0x00] = (byte)0x00;		ASCII2EBCDIC[0x01] = (byte)0x01;
		ASCII2EBCDIC[0x02] = (byte)0x02;		ASCII2EBCDIC[0x03] = (byte)0x03;
		ASCII2EBCDIC[0x04] = (byte)0x37;		ASCII2EBCDIC[0x05] = (byte)0x2D;
		ASCII2EBCDIC[0x06] = (byte)0x2E;		ASCII2EBCDIC[0x07] = (byte)0x2F;
		ASCII2EBCDIC[0x08] = (byte)0x16;		ASCII2EBCDIC[0x09] = (byte)0x05;
		ASCII2EBCDIC[0x0A] = (byte)0x25;		ASCII2EBCDIC[0x0B] = (byte)0x0B;
		ASCII2EBCDIC[0x0C] = (byte)0x0C;		ASCII2EBCDIC[0x0D] = (byte)0x0D;
		ASCII2EBCDIC[0x0E] = (byte)0x0E;		ASCII2EBCDIC[0x0F] = (byte)0x0F;
		ASCII2EBCDIC[0x10] = (byte)0x10;		ASCII2EBCDIC[0x11] = (byte)0x11;
		ASCII2EBCDIC[0x12] = (byte)0x12;		ASCII2EBCDIC[0x13] = (byte)0x13;
		ASCII2EBCDIC[0x14] = (byte)0x3C;		ASCII2EBCDIC[0x15] = (byte)0x3D;
		ASCII2EBCDIC[0x16] = (byte)0x32;		ASCII2EBCDIC[0x17] = (byte)0x26;
		ASCII2EBCDIC[0x18] = (byte)0x18;		ASCII2EBCDIC[0x19] = (byte)0x19;
		ASCII2EBCDIC[0x1A] = (byte)0x3F;		ASCII2EBCDIC[0x1B] = (byte)0x27;
		ASCII2EBCDIC[0x1C] = (byte)0x1C;		ASCII2EBCDIC[0x1D] = (byte)0x1D;
		ASCII2EBCDIC[0x1E] = (byte)0x1E;		ASCII2EBCDIC[0x1F] = (byte)0x1F;
		ASCII2EBCDIC[0x20] = (byte)0x40;		ASCII2EBCDIC[0x21] = (byte)0x5A;
		ASCII2EBCDIC[0x22] = (byte)0x7F;		ASCII2EBCDIC[0x23] = (byte)0x7B;
		ASCII2EBCDIC[0x24] = (byte)0xE0;		ASCII2EBCDIC[0x25] = (byte)0x6C;
		ASCII2EBCDIC[0x26] = (byte)0x50;		ASCII2EBCDIC[0x27] = (byte)0x7D;
		ASCII2EBCDIC[0x28] = (byte)0x4D;		ASCII2EBCDIC[0x29] = (byte)0x5D;
		ASCII2EBCDIC[0x2A] = (byte)0x5C;		ASCII2EBCDIC[0x2B] = (byte)0x4E;
		ASCII2EBCDIC[0x2C] = (byte)0x6B;		ASCII2EBCDIC[0x2D] = (byte)0x60;
		ASCII2EBCDIC[0x2E] = (byte)0x4B;		ASCII2EBCDIC[0x2F] = (byte)0x61;
		ASCII2EBCDIC[0x30] = (byte)0xF0;		ASCII2EBCDIC[0x31] = (byte)0xF1;
		ASCII2EBCDIC[0x32] = (byte)0xF2;		ASCII2EBCDIC[0x33] = (byte)0xF3;
		ASCII2EBCDIC[0x34] = (byte)0xF4;		ASCII2EBCDIC[0x35] = (byte)0xF5;
		ASCII2EBCDIC[0x36] = (byte)0xF6;		ASCII2EBCDIC[0x37] = (byte)0xF7;
		ASCII2EBCDIC[0x38] = (byte)0xF8;		ASCII2EBCDIC[0x39] = (byte)0xF9;
		ASCII2EBCDIC[0x3A] = (byte)0x7A;		ASCII2EBCDIC[0x3B] = (byte)0x5E;
		ASCII2EBCDIC[0x3C] = (byte)0x4C;		ASCII2EBCDIC[0x3D] = (byte)0x7E;
		ASCII2EBCDIC[0x3E] = (byte)0x6E;		ASCII2EBCDIC[0x3F] = (byte)0x6F;
		ASCII2EBCDIC[0x40] = (byte)0x7C;		ASCII2EBCDIC[0x41] = (byte)0xC1;
		ASCII2EBCDIC[0x42] = (byte)0xC2;		ASCII2EBCDIC[0x43] = (byte)0xC3;
		ASCII2EBCDIC[0x44] = (byte)0xC4;		ASCII2EBCDIC[0x45] = (byte)0xC5;
		ASCII2EBCDIC[0x46] = (byte)0xC6;		ASCII2EBCDIC[0x47] = (byte)0xC7;
		ASCII2EBCDIC[0x48] = (byte)0xC8;		ASCII2EBCDIC[0x49] = (byte)0xC9;
		ASCII2EBCDIC[0x4A] = (byte)0xD1;		ASCII2EBCDIC[0x4B] = (byte)0xD2;
		ASCII2EBCDIC[0x4C] = (byte)0xD3;		ASCII2EBCDIC[0x4D] = (byte)0xD4;
		ASCII2EBCDIC[0x4E] = (byte)0xD5;		ASCII2EBCDIC[0x4F] = (byte)0xD6;
		ASCII2EBCDIC[0x50] = (byte)0xD7;		ASCII2EBCDIC[0x51] = (byte)0xD8;
		ASCII2EBCDIC[0x52] = (byte)0xD9;		ASCII2EBCDIC[0x53] = (byte)0xE2;
		ASCII2EBCDIC[0x54] = (byte)0xE3;		ASCII2EBCDIC[0x55] = (byte)0xE4;
		ASCII2EBCDIC[0x56] = (byte)0xE5;		ASCII2EBCDIC[0x57] = (byte)0xE6;
		ASCII2EBCDIC[0x58] = (byte)0xE7;		ASCII2EBCDIC[0x59] = (byte)0xE8;
		ASCII2EBCDIC[0x5A] = (byte)0xE9;		ASCII2EBCDIC[0x5B] = (byte)0xBA;
		ASCII2EBCDIC[0x5C] = (byte)0xB2;		ASCII2EBCDIC[0x5D] = (byte)0xBB;
		ASCII2EBCDIC[0x5E] = (byte)0xB0;		ASCII2EBCDIC[0x5F] = (byte)0x6D;
		ASCII2EBCDIC[0x60] = (byte)0x79;		ASCII2EBCDIC[0x61] = (byte)0x81;
		ASCII2EBCDIC[0x62] = (byte)0x82;		ASCII2EBCDIC[0x63] = (byte)0x83;
		ASCII2EBCDIC[0x64] = (byte)0x84;		ASCII2EBCDIC[0x65] = (byte)0x85;
		ASCII2EBCDIC[0x66] = (byte)0x86;		ASCII2EBCDIC[0x67] = (byte)0x87;
		ASCII2EBCDIC[0x68] = (byte)0x88;		ASCII2EBCDIC[0x69] = (byte)0x89;
		ASCII2EBCDIC[0x6A] = (byte)0x91;		ASCII2EBCDIC[0x6B] = (byte)0x92;
		ASCII2EBCDIC[0x6C] = (byte)0x93;		ASCII2EBCDIC[0x6D] = (byte)0x94;
		ASCII2EBCDIC[0x6E] = (byte)0x95;		ASCII2EBCDIC[0x6F] = (byte)0x96;
		ASCII2EBCDIC[0x70] = (byte)0x97;		ASCII2EBCDIC[0x71] = (byte)0x98;
		ASCII2EBCDIC[0x72] = (byte)0x99;		ASCII2EBCDIC[0x73] = (byte)0xA2;
		ASCII2EBCDIC[0x74] = (byte)0xA3;		ASCII2EBCDIC[0x75] = (byte)0xA4;
		ASCII2EBCDIC[0x76] = (byte)0xA5;		ASCII2EBCDIC[0x77] = (byte)0xA6;
		ASCII2EBCDIC[0x78] = (byte)0xA7;		ASCII2EBCDIC[0x79] = (byte)0xA8;
		ASCII2EBCDIC[0x7A] = (byte)0xA9;		ASCII2EBCDIC[0x7B] = (byte)0xC0;
		ASCII2EBCDIC[0x7C] = (byte)0x4F;		ASCII2EBCDIC[0x7D] = (byte)0xD0;
		ASCII2EBCDIC[0x7E] = (byte)0xA0;		ASCII2EBCDIC[0x7F] = (byte)0x07;
		
		for (int i = 0; i < 256; ++i) {
			EBCDIC2ASCII[ASCII2EBCDIC[i] & 0xFF] = (byte) i;
		}
	}

	privatestaticbyte convertByteA2E(byte in) {
		returnASCII2EBCDIC[in & 0xFF];
	}

	privatestaticbyte convertByteE2A(byte in) {
		returnEBCDIC2ASCII[in & 0xFF];
	}

	//将asc转为ebc
	publicstaticbyte[] convertStrToEBCDIC(byte[] in) {
		if (in != null) {
			byte[] out = newbyte[in.length];
			for (int i = 0; i <in.length; ++i) {
				out[i] = convertByteA2E(in[i]);
			}
			return out;
		}
		returnnull;
	}

	//将ebc转为asc
	publicstaticbyte[] convertStrToASCII(byte[] in) {
		if (in != null) {
			byte[] out = newbyte[in.length];
			for (int i = 0; i <in.length; ++i) {
				out[i] = convertByteE2A(in[i]);
			}
			return out;
		}
		returnnull;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值