免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4093 | 回复: 2
打印 上一主题 下一主题

ASCIIC码转EBCDIC码的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-02-22 19:35 |只看该作者 |倒序浏览
请问:在JAVA应用端我需要进行ASCIIC码转EBCDIC码,请问这个怎么实现?

论坛徽章:
0
2 [报告]
发表于 2005-02-22 23:44 |只看该作者

ASCIIC码转EBCDIC码的问题

修改自这里,原来的程序是Python写的

AsciiToEbcdicUtil.java

001 public class AsciiToEbcdicUtil {
002        
003         private static int[] a2eG = {
004                          0,  1,  2,  3, 55, 45, 46, 47, 22,  5, 37, 11, 12, 13, 14, 15,
005                      16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
006                      64, 79,127,123, 91,108, 80,125, 77, 93, 92, 78,107, 96, 75, 97,
007                     240,241,242,243,244,245,246,247,248,249,122, 94, 76,126,110,111,
008                     124,193,194,195,196,197,198,199,200,201,209,210,211,212,213,214,
009                     215,216,217,226,227,228,229,230,231,232,233, 74,224, 90, 95,109,
010                     121,129,130,131,132,133,134,135,136,137,145,146,147,148,149,150,
011                     151,152,153,162,163,164,165,166,167,168,169,192,106,208,161,  7,
012                      32, 33, 34, 35, 36, 21,  6, 23, 40, 41, 42, 43, 44,  9, 10, 27,
013                      48, 49, 26, 51, 52, 53, 54,  8, 56, 57, 58, 59,  4, 20, 62,225,
014                      65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 83, 84, 85, 86, 87,
015                      88, 89, 98, 99,100,101,102,103,104,105,112,113,114,115,116,117,
016                     118,119,120,128,138,139,140,141,142,143,144,154,155,156,157,158,
017                     159,160,170,171,172,173,174,175,176,177,178,179,180,181,182,183,
018                     184,185,186,187,188,189,190,191,202,203,204,205,206,207,218,219,
019                     220,221,222,223,234,235,236,237,238,239,250,251,252,253,254,255
020         };
021        
022         private static int[] e2aG = {
023                         0,  1,  2,  3,156,  9,134,127,151,141,142, 11, 12, 13, 14, 15,
024                      16, 17, 18, 19,157,133,  8,135, 24, 25,146,143, 28, 29, 30, 31,
025                     128,129,130,131,132, 10, 23, 27,136,137,138,139,140,  5,  6,  7,
026                     144,145, 22,147,148,149,150,  4,152,153,154,155, 20, 21,158, 26,
027                      32,160,161,162,163,164,165,166,167,168, 91, 46, 60, 40, 43, 33,
028                      38,169,170,171,172,173,174,175,176,177, 93, 36, 42, 41, 59, 94,
029                      45, 47,178,179,180,181,182,183,184,185,124, 44, 37, 95, 62, 63,
030                     186,187,188,189,190,191,192,193,194, 96, 58, 35, 64, 39, 61, 34,
031                     195, 97, 98, 99,100,101,102,103,104,105,196,197,198,199,200,201,
032                     202,106,107,108,109,110,111,112,113,114,203,204,205,206,207,208,
033                     209,126,115,116,117,118,119,120,121,122,210,211,212,213,214,215,
034                     216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,
035                     123, 65, 66, 67, 68, 69, 70, 71, 72, 73,232,233,234,235,236,237,
036                     125, 74, 75, 76, 77, 78, 79, 80, 81, 82,238,239,240,241,242,243,
037                      92,159, 83, 84, 85, 86, 87, 88, 89, 90,244,245,246,247,248,249,
038                      48, 49, 50, 51, 52, 53, 54, 55, 56, 57,250,251,252,253,254,255
039         };
040        
041         public static String AsciiToEbcdic(String str) {
042                 if (str.length() == 0) {
043                         return str;
044                 }
045                 else {
046                         StringBuffer result = new StringBuffer();
047                         for (int i = 0; i < str.length(); i++) {
048                                 result.append((char)a2eG[(int)str.charAt(i)]);
049                         }
050                         return result.toString();
051                 }
052         }
053
054         public static String EbcdidToAscii(String str) {
055                 if (str.length() == 0) {
056                         return str;
057                 }
058                 else {
059                         StringBuffer result = new StringBuffer();
060                         for (int i = 0; i < str.length(); i++) {
061                                 result.append((char)e2aG[(int)str.charAt(i)]);
062                         }
063                         return result.toString();
064                 }
065         }
066 }

测试 TestAsciiToEbcdicUtil.java

001 import junit.framework.TestCase;
002
003 public class TestAsciiToEbcdicUtil extends TestCase {
004        
005         public void testConversions() {
006                 String str = "The dog jumped over the lazy brown fox in 1.234567890 seconds.";
007                 assertEquals(str, AsciiToEbcdicUtil.EbcdidToAscii(
008                                 AsciiToEbcdicUtil.AsciiToEbcdic(str)));
009         }
010
011         public static void main(String[] args) {
012                 junit.swingui.TestRunner.run(TestAsciiToEbcdicUtil.class);
013         }
014
015 }

testresult.jpg (17.37 KB, 下载次数: 84)

testresult.jpg

论坛徽章:
0
3 [报告]
发表于 2005-02-24 10:05 |只看该作者

ASCIIC码转EBCDIC码的问题

这个行吗,回个话啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP