ebcdic java_java EBCDIC
从网上找了一段关于用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相关推荐
- 计算机编程ebcdic码,EBCDIC 与 ASCII 编码相互转换
如下代码,将字符串 "fcode.cn" 转换成 EBCDIC 编码,然后再转换回来.执行后输出为: fcode.cn 唭杽匥儠 fcode.cn Program www_fcod ...
- 计算机编程ebcdic码,EBCDIC和BCD码
EBCDIC EBCDIC(Extended Binary Coded Decimal Interchange Code)(扩展二进制编码的十进制交换码),是字母或数字字符的二进制编码,是 IBM 专 ...
- java ebcdic编码转换_JAVA实现ASCII码与EBCDIC码的相互转换
import java.io.*; public class coder{ /** * ASCII码对应表 */ private static final String [] ASCII={ &quo ...
- 计算机常用的数制及编码
数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法.编码是采用少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息的技术.计算机是信息处理的工具,任何信息必须转换成二进制形式数据 ...
- mcq 队列_MCQ | 8086微处理器中的字符串操作指令
mcq 队列 Question 1: 问题1: A string is a collection of characters. Each Character is an of byte length ...
- oracle subset-superset pairs,Oracle 字符集
1 字符集超集 当一种字符集(字符集A)的编码数值包含所有另一种字符集(字符集B)的编码数值,并且两种字符集相同编码数值代表相同的字符时,则字符集A是字符集B的超级,或称字符集B是字符集A的子集. O ...
- 计算机科学导论数据运算,2-计算机科学导论-数据与运算讲述.ppt
2-计算机科学导论-数据与运算讲述 * 包括10个十进制数字(0-9).52个英文大写和小写字母(A-Z,a-z).34个专用符号和32个控制符号,共计128个字符. * 没有在IBM以外的机器上得到 ...
- FTP(文件传输协议)
ftp (文件传输协议) FTP 是File Transfer Protocol(文件传输协议)的英文简称,是 TCP/IP 协议组中的协议之一.用于Internet上的控制文件的双向传输.同时,它也 ...
- linux 命令:less详解
less的功能是随意查看文件内容,可搜索和翻页. 用法 less -? less --help less -V less --version ...
最新文章
- 什么是SAAS 即软件即服务模式
- IIS的应用程序池优化方法
- 学习一段深有感悟的讲话
- Invalid bound statement (not found)
- C文件操作之写入字符串到指定文件并在屏幕显示
- 几款开源富文本编辑器优缺点比较
- 在weblogic12c中启动工程报错缺失BeanFactoryAware
- 常用的Ant风格书写
- 11.4 优化拆分和合并(region)
- php 常用正则表达 邮箱 手机号啥的
- bscroll制作轮播图,jq和vue两种方式,带下边的点点
- html5广告条滚动特效代码,js实现随屏幕滚动的带缓冲效果的右下角广告代码
- SketchUp插件|FredoGhost幻影替身插件最新版免费下载及介绍(轻量化草图大师模型)
- 《庄子·杂篇·庚桑楚第二十三》
- 【附源码】Java计算机毕业设计安卓在线民宿预定app(程序+LW+部署)
- jquery.countdown.js一个时间倒计时的插件
- 在销量压力下,国产手机开始降价了,但还没有放下最后的面子
- mysql join 一对多_Join 一对多连接
- QQmail2007
- back_inserter的使用
热门文章
- [ecshop 经验 ]transport.js run error 68ecshop 小京东 火狐提示 同源策略和跨域访问 68ecshop
- 卸载工具Android,教你轻松卸载/删除Android手机内置游戏/软件
- PPT打开之后不能编辑,怎么解决?
- Java设计模式----创建者模式
- 7-38 实验7_3_奇数偶数 (100 分)
- MacBook Pro 2018电池鼓包、键盘问题免费换新
- Linux 条件变量 pthread_cond_wait
- Arithmetic Slices 算术序列
- html5判断出生日期,出生时间看五行,出生日期查五行属性?
- 直播平台搭建iOS 版本打包上架