从网上找了一段关于用Java来转EBCDIC的代码,测试了一下是可以的。

package com.util;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class CoderUtil {

public static byte[] EToA = hexToBytes(getEDBToAsc());

public static byte[] AToE = hexToBytes(getAscToEDB());

public static String getAscToEDB() {

StringBuffer sb = new StringBuffer();

sb.append("00010203372D2E2F1605250B0C0D0E0F");

sb.append("101112133C3D322618193F271C1D1E1F");

sb.append("405A7F7B5B6C507D4D5D5C4E6B604B61");

sb.append("F0F1F2F3F4F5F6F7F8F97A5E4C7E6E6F");

sb.append("7CC1C2C3C4C5C6C7C8C9D1D2D3D4D5D6");

sb.append("D7D8D9E2E3E4E5E6E7E8E9ADE0BD5F6D");

sb.append("79818283848586878889919293949596");

sb.append("979899A2A3A4A5A6A7A8A9C04FD0A107");

sb.append("202122232415061728292A2B2C090A1B");

sb.append("30311A333435360838393A3B04143EE1");

sb.append("41424344454647484951525354555657");

sb.append("58596263646566676869707172737475");

sb.append("767778808A8B8C8D8E8F909A9B9C9D9E");

sb.append("9FA0AAABAC4AAEAFB0B1B2B3B4B5B6B7");

sb.append("B8B9BABBBC6ABEBFCACBCCCDCECFDAdB");

sb.append("DCDDDEDFEAEBECEDEEEFFAFBFCFDFEFF");

return sb.toString(); }

public static String getEDBToAsc() {

StringBuffer sb = new StringBuffer();

sb.append("000102039C09867F978D8E0B0C0D0E0F");

sb.append("101112139D8508871819928F1C1D1E1F");

sb.append("80818283840A171B88898A8B8C050607");

sb.append("909116939495960498999A9B14159E1A");

sb.append("20A0A1A2A3A4A5A6A7A8D52E3C282B7C");

sb.append("26A9AAABACADAEAFB0B121242A293B5E");

sb.append("2D2FB2B3B4B5B6B7B8B9E52C255F3E3F");

sb.append("BABBBCBDBEBFC0C1C2603A2340273D22");

sb.append("C3616263646566676869C4C5C6C7C8C9");

sb.append("CA6A6B6C6D6E6F707172CBCCCDCECFD0");

sb.append("D17E737475767778797AD2D3D45BD6D7");

sb.append("D8D9DADBDCDDDEDFE0E1E2E3E45DE6E7");

sb.append("7B414243444546474849E8E9EAEBECED");

sb.append("7D4A4B4C4D4E4F505152EEEFF0F1F2F3");

sb.append("5C9F535455565758595AF4F5F6F7F8F9");

sb.append("30313233343536373839FAFBFCFDFEFF");

return sb.toString(); }

public static byte[] hexToBytes(char[] hex) {

int length = hex.length / 2;

byte[] raw = new byte[length];

for (int i = 0; i < length; i++) {

int high = Character.digit(hex[i * 2], 16);

int low = Character.digit(hex[i * 2 + 1], 16);

int value = (high << 4) | low;

if (value > 127) value -= 256; raw[i] = (byte) value; }

return raw; }

public static byte[] hexToBytes(String hex) { return hexToBytes(hex.toCharArray()); }

/**

* byte :: ASCII->EBCDIC

*/

public static int ASCIIToEBCDIC(int ascii) {

return AToE[ascii & 0xff] & 0xff;

}

/**

* byte :: EBCDIC->ASCII

*/

public static int EBCDICToASCII(int ebcdic) {

return EToA[ebcdic & 0xff] & 0xff;

}

/**

* byte[] :: ASCII->EBCDIC

*/

public static byte[] ASCIIToEBCDIC(byte[] ascii) {

byte[] tobytes = new byte[ascii.length];

for (int i = 0; i < ascii.length; i++)

tobytes[i] = (byte) ASCIIToEBCDIC(ascii[i]);

return tobytes;

}

/**

* byte[] :: EBCDIC->ASCII

*/

public static byte[] EBCDICToASCII(byte[] ebcdic) {

byte[] tobytes = new byte[ebcdic.length];

for (int i = 0; i < ebcdic.length; i++)

tobytes[i] = (byte) EBCDICToASCII(ebcdic[i]);

return tobytes;

}

/**

* String :: ASCII->EBCDIC

*/

public static String ASCIIToEBCDIC(String ascii)

throws Exception

{

return new String(ASCIIToEBCDIC(ascii.getBytes("iso-8859-1")), "iso-8859-1");

}

/**

* String :: EBCDIC->ASCII

*/

public static String EBCDICToASCII(String ebcdic)

throws Exception

{

return new String(EBCDICToASCII(ebcdic.getBytes("iso-8859-1")),"iso-8859-1");

}

/**

* File :: ASCII->EBCDIC

*/

public static void ASCIIToEBCDIC(String fromfile, String tofile) {

try {

FileInputStream in = new FileInputStream(new File(fromfile));

FileOutputStream out = new FileOutputStream(new File(tofile));

int tempint, i = 0;

byte[] tempbytes = new byte[in.available()];

while ((tempint = in.read()) != -1)

tempbytes[i++] = (byte) tempint;

out.write(ASCIIToEBCDIC(tempbytes));

in.close();

out.close();

} catch (Exception e) {

System.out.println(e);

}

}

/**

* File :: EBCDIC->ASCII

*/

public static void EBCDICToASCII(String fromfile, String tofile) {

try {

FileInputStream in = new FileInputStream(new File(fromfile));

FileOutputStream out = new FileOutputStream(new File(tofile));

int tempint, i = 0;

byte[] tempbytes = new byte[in.available()];

while ((tempint = in.read()) != -1)

tempbytes[i++] = (byte) tempint;

out.write(EBCDICToASCII(tempbytes));

in.close();

out.close();

} catch (Exception e) {

System.out.println(e);

}

}

/**

* @param args

*/

public static void main(String[] args) {

try {

String srcStr = "Y2I10000CIBF01 0000000006000000000000000000000 ?DP START?TEST ACCOUNT"

+ "000348 ?0000000009387.93+?0000000000000.00+?0000000000000.00"

+ "+?0000000000000.00+?00000000?00000000?0.00000000+?00000000?0000000009387.93+?000"

+ "0000009387.93+?00000000000.00+?00000000000.00+?0000000000000.00+?0000000000000.0"

+ "0+?0000000000000.00+?0000000000000.00+?0000000009387.93+?0000000000001.00+?00000"

+ "00000001.82+?0000000000000.00+?0000000000000.00+?0000000000000.00+?0000000000000"

+ ".00+?0000000000000.00+?0000000000000.00+?0000000000000.00+?0000000000000.00+?000"

+ "006?END";

String srcStr1 = "3èò????????????@@???????????????????????????????@j?×@@@@@@?????j????@???????@???ó??@@@@@@@@@@@@@@@@@@@@@j?????????ùó?÷KùóNj?????????????K??Nj?????????????K??Nj?????????????K??Nj????????j????????j?K????????Nj????????j?????????ùó?÷KùóNj?????????ùó?÷KùóNj???????????K??Nj???????????K??Nj?????????????K??Nj?????????????K??Nj?????????????K??Nj?????????????K??Nj?????????ùó?÷KùóNj?????????????K??Nj?????????????K?òNj?????????????K??Nj?????????????K??Nj?????????????K??Nj?????????????K??Nj?????????????K??Nj?????????????K??Nj?????????????K??Nj?????????????K??Nj??????j???";

String outStr = ASCIIToEBCDIC(srcStr);

System.out.println(outStr);

System.out.println(EBCDICToASCII(srcStr1));

} catch (Exception e) {

e.printStackTrace();

}

}

}

ebcdic java_java EBCDIC相关推荐

  1. 计算机编程ebcdic码,EBCDIC 与 ASCII 编码相互转换

    如下代码,将字符串 "fcode.cn" 转换成 EBCDIC 编码,然后再转换回来.执行后输出为: fcode.cn 唭杽匥儠 fcode.cn Program www_fcod ...

  2. 计算机编程ebcdic码,EBCDIC和BCD码

    EBCDIC EBCDIC(Extended Binary Coded Decimal Interchange Code)(扩展二进制编码的十进制交换码),是字母或数字字符的二进制编码,是 IBM 专 ...

  3. java ebcdic编码转换_JAVA实现ASCII码与EBCDIC码的相互转换

    import java.io.*; public class coder{ /** * ASCII码对应表 */ private static final String [] ASCII={ &quo ...

  4. 计算机常用的数制及编码

    数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法.编码是采用少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息的技术.计算机是信息处理的工具,任何信息必须转换成二进制形式数据 ...

  5. mcq 队列_MCQ | 8086微处理器中的字符串操作指令

    mcq 队列 Question 1: 问题1: A string is a collection of characters. Each Character is an of byte length ...

  6. oracle subset-superset pairs,Oracle 字符集

    1 字符集超集 当一种字符集(字符集A)的编码数值包含所有另一种字符集(字符集B)的编码数值,并且两种字符集相同编码数值代表相同的字符时,则字符集A是字符集B的超级,或称字符集B是字符集A的子集. O ...

  7. 计算机科学导论数据运算,2-计算机科学导论-数据与运算讲述.ppt

    2-计算机科学导论-数据与运算讲述 * 包括10个十进制数字(0-9).52个英文大写和小写字母(A-Z,a-z).34个专用符号和32个控制符号,共计128个字符. * 没有在IBM以外的机器上得到 ...

  8. FTP(文件传输协议)

    ftp (文件传输协议) FTP 是File Transfer Protocol(文件传输协议)的英文简称,是 TCP/IP 协议组中的协议之一.用于Internet上的控制文件的双向传输.同时,它也 ...

  9. linux 命令:less详解

    less的功能是随意查看文件内容,可搜索和翻页. 用法 less -?         less --help         less -V         less --version       ...

最新文章

  1. 什么是SAAS 即软件即服务模式
  2. IIS的应用程序池优化方法
  3. 学习一段深有感悟的讲话
  4. Invalid bound statement (not found)
  5. C文件操作之写入字符串到指定文件并在屏幕显示
  6. 几款开源富文本编辑器优缺点比较
  7. 在weblogic12c中启动工程报错缺失BeanFactoryAware
  8. 常用的Ant风格书写
  9. 11.4 优化拆分和合并(region)
  10. php 常用正则表达 邮箱 手机号啥的
  11. bscroll制作轮播图,jq和vue两种方式,带下边的点点
  12. html5广告条滚动特效代码,js实现随屏幕滚动的带缓冲效果的右下角广告代码
  13. SketchUp插件|FredoGhost幻影替身插件最新版免费下载及介绍(轻量化草图大师模型)
  14. 《庄子·杂篇·庚桑楚第二十三》
  15. 【附源码】Java计算机毕业设计安卓在线民宿预定app(程序+LW+部署)
  16. jquery.countdown.js一个时间倒计时的插件
  17. 在销量压力下,国产手机开始降价了,但还没有放下最后的面子
  18. mysql join 一对多_Join 一对多连接
  19. QQmail2007
  20. back_inserter的使用

热门文章

  1. [ecshop 经验 ]transport.js run error 68ecshop 小京东 火狐提示 同源策略和跨域访问 68ecshop
  2. 卸载工具Android,教你轻松卸载/删除Android手机内置游戏/软件
  3. PPT打开之后不能编辑,怎么解决?
  4. Java设计模式----创建者模式
  5. 7-38 实验7_3_奇数偶数 (100 分)
  6. MacBook Pro 2018电池鼓包、键盘问题免费换新
  7. Linux 条件变量 pthread_cond_wait
  8. Arithmetic Slices 算术序列
  9. html5判断出生日期,出生时间看五行,出生日期查五行属性?
  10. 直播平台搭建iOS 版本打包上架