Java中的EBCDIC转换

import java.io.*;

public class EBCDIC{
   
   /**
     * ASCII
     */
    private static final String [] ASCII={
        "NUL",    /* ASCII  0   0x00 "Null" */
        "SOH",    /* ASCII  1   0x01 "Start of Heading" */
        "STX",    /* ASCII  2   0x02 "Start of Text " */
        "ETX",    /* ASCII  3   0x03 "End of Text" */
        "EOT",    /* ASCII  4   0x04 "End of Transmission" */
        "ENQ",    /* ASCII  5   0x05 "Enquiry" */
        "ACK",    /* ASCII  6   0x06 "Acknowledge" */
        "BEL",    /* ASCII  7   0x07 "Bell" */
        "BS",     /* ASCII  8   0x08 "Backspace" */
        "HT",     /* ASCII  9   0x09 "Horizontal Tabulation" */
        "LF",     /* ASCII  10  0x0A "Line Feed" */
        "VT",     /* ASCII  11  0x0B "Vertical Tabulation" */
        "FF",     /* ASCII  12  0x0C "Form Feed" */
        "CR",     /* ASCII  13  0x0D "Carriage Return" */
        "SO",     /* ASCII  14  0x0E "Shift Out" */
        "SI",     /* ASCII  15  0x0F "Shift In" */
        "DLE",    /* ASCII  16  0x10 "Data Link Escape" */
        "DC1",    /* ASCII  17  0x11 "Device Control 1" */
        "DC2",    /* ASCII  18  0x12 "Device Control 2" */
        "DC3",    /* ASCII  19  0x13 "Device Control 3" */
        "DC4",    /* ASCII  20  0x14 "Device Control 4" */
        "NAK",    /* ASCII  21  0x15 "Negative Acknowledge" */
        "SYN",    /* ASCII  22  0x16 "Synchronous Idle" */
        "ETB",    /* ASCII  23  0x17 "End of Transmission Block" */
        "CAN",    /* ASCII  24  0x18 "Cancel" */
        "EM",     /* ASCII  25  0x19 "End of Medium" */
        "SUB",    /* ASCII  26  0x1A "Substitute" */
        "ESC",    /* ASCII  27  0x1B "Escape" */
        "FS",     /* ASCII  28  0x1C "File Separator" */
        "GS",     /* ASCII  29  0x1D "Group Separator" */
        "RS",     /* ASCII  30  0x1E "Record Separator" */
        "US",     /* ASCII  31  0x1F "Unit Separator" */
        "SP",     /* ASCII  32  0x20 "Space" */
        "!",      /* ASCII  33  0x21 "Exclamation Point" */
        "\"",     /* ASCII  34  0x22 "Quotation Mark" */
        "#",      /* ASCII  35  0x23 "Number Sign, pound" */
        "$",      /* ASCII  36  0x24 "Dollar Sign" */
        "%",      /* ASCII  37  0x25 "Percent" */
        "&",      /* ASCII  38  0x26 "Ampersand" */
        "'",      /* ASCII  39  0x27 "Apostrophe, Prime" */
        "(",      /* ASCII  40  0x28 "Left Parenthesis" */
        ")",      /* ASCII  41  0x29 "Right Parenthesis" */
        "*",      /* ASCII  42  0x2A "Asterisk, star" */
        "+",      /* ASCII  43  0x2B "Plus Sign" */
        ",",      /* ASCII  44  0x2C "Comma" */
        "-",      /* ASCII  45  0x2D "Hyphen Minus Sign" */
        ".",      /* ASCII  46  0x2E "Period, Decimal Point, dot" */
        "/",      /* ASCII  47  0x2F "Slash, Virgule" */
        "0",      /* ASCII  48  0x30 "0" */
        "1",      /* ASCII  49  0x31 "1" */
        "2",      /* ASCII  50  0x32 "2" */
        "3",      /* ASCII  51  0x33 "3" */
        "4",      /* ASCII  52  0x34 "4" */
        "5",      /* ASCII  53  0x35 "5" */
        "6",      /* ASCII  54  0x36 "6" */
        "7",      /* ASCII  55  0x37 "7" */
        "8",      /* ASCII  56  0x38 "8" */
        "9",      /* ASCII  57  0x39 "9" */
        ":",      /* ASCII  58  0x3A "Colon" */
        ";",      /* ASCII  59  0x3B "Semicolon" */
        "<",      /* ASCII  60  0x3C "Less-than Sign" */
        "=",      /* ASCII  61  0x3D "Equal Sign" */
        ">",      /* ASCII  62  0x3E "Greater-than Sign" */
        "?",      /* ASCII  63  0x3F "Question Mark" */
        "@",      /* ASCII  64  0x40 "At Sign" */
        "A",      /* ASCII  65  0x41 "A" */
        "B",      /* ASCII  66  0x42 "B" */
        "C",      /* ASCII  67  0x43 "C" */
        "D",      /* ASCII  68  0x44 "D" */
        "E",      /* ASCII  69  0x45 "E" */
        "F",      /* ASCII  70  0x46 "F" */
        "G",      /* ASCII  71  0x47 "G" */
        "H",      /* ASCII  72  0x48 "H" */
        "I",      /* ASCII  73  0x49 "I" */
        "J",      /* ASCII  74  0x4A "J" */
        "K",      /* ASCII  75  0x4B "K" */
        "L",      /* ASCII  76  0x4C "L" */
        "M",      /* ASCII  77  0x4D "M" */
        "N",      /* ASCII  78  0x4E "N" */
        "O",      /* ASCII  79  0x4F "O" */
        "P",      /* ASCII  80  0x50 "P" */
        "Q",      /* ASCII  81  0x51 "Q" */
        "R",      /* ASCII  82  0x52 "R" */
        "S",      /* ASCII  83  0x53 "S" */
        "T",      /* ASCII  84  0x54 "T" */
        "U",      /* ASCII  85  0x55 "U" */
        "V",      /* ASCII  86  0x56 "V" */
        "W",      /* ASCII  87  0x57 "W" */
        "X",      /* ASCII  88  0x58 "X" */
        "Y",      /* ASCII  89  0x59 "Y" */
        "Z",      /* ASCII  90  0x5A "Z" */
        "[",      /* ASCII  91  0x5B "Opening Bracket" */
        "\\",     /* ASCII  92  0x5C "Reverse Slant" */
        "]",      /* ASCII  93  0x5D "Closing Bracket" */
        "^",      /* ASCII  94  0x5E "Circumflex, Caret" */
        "_",      /* ASCII  95  0x5F "Underline, Underscore" */
        "`",      /* ASCII  96  0x60 "Grave Accent" */
        "a",      /* ASCII  97  0x61 "a" */
        "b",      /* ASCII  98  0x62 "b" */
        "c",      /* ASCII  99  0x63 "c" */
        "d",      /* ASCII  100 0x64 "d" */
        "e",      /* ASCII  101 0x65 "e" */
        "f",      /* ASCII  102 0x66 "f" */
        "g",      /* ASCII  103 0x67 "g" */
        "h",      /* ASCII  104 0x68 "h" */
        "i",      /* ASCII  105 0x69 "i" */
        "j",      /* ASCII  106 0x6A "j" */
        "k",      /* ASCII  107 0x6B "k" */
        "l",      /* ASCII  108 0x6C "l" */
        "m",      /* ASCII  109 0x6D "m" */
        "n",      /* ASCII  110 0x6E "n" */
        "o",      /* ASCII  111 0x6F "o" */
        "p",      /* ASCII  112 0x70 "p" */
        "q",      /* ASCII  113 0x71 "q" */
        "r",      /* ASCII  114 0x72 "r" */
        "s",      /* ASCII  115 0x73 "s" */
        "t",      /* ASCII  116 0x74 "t" */
        "u",      /* ASCII  117 0x75 "u" */
        "v",      /* ASCII  118 0x76 "v" */
        "w",      /* ASCII  119 0x77 "w" */
        "x",      /* ASCII  120 0x78 "x" */
        "y",      /* ASCII  121 0x79 "y" */
        "z",      /* ASCII  122 0x7A "z" */
        "{",      /* ASCII  123 0x7B "Opening Brace" */
        "|",      /* ASCII  124 0x7C "Vertical Line" */
        "}",      /* ASCII  125 0x7D "Closing Brace" */
        "~",      /* ASCII  126 0x7E "Tilde" */
        "DEL",    /* ASCII  127 0x7F "Delete" */
        "",       /* ASCII  128 0x80 "Reserved" */
        "",       /* ASCII  129 0x81 "Reserved" */
        "",       /* ASCII  130 0x82 "Reserved" */
        "",       /* ASCII  131 0x83 "Reserved" */
        "IND",    /* ASCII  132 0x84 "Index" */
        "NEL",    /* ASCII  133 0x85 "Next Line" */
        "SSA",    /* ASCII  134 0x86 "Start of Selected Area" */
        "ESA",    /* ASCII  135 0x87 "End of Selected Area" */
        "HTS",    /* ASCII  136 0x88 "Horizontal Tab Set" */
        "HTJ",    /* ASCII  137 0x89 "Horizontal Tabwith Just" */
        "VTS",    /* ASCII  138 0x8A "Vertical Tab Set" */
        
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java,可以使用Java.nio.charset.Charset类来实现EBCDIC和GBK之间的转换。具体实现可以按照以下步骤进行: 1. 创建EBCDIC编码和GBK编码的Charset对象。 ```java Charset charsetEBCDIC = Charset.forName("IBM1047"); Charset charsetGBK = Charset.forName("GBK"); ``` 2. 将需要转换文本内容转换成ByteBuffer对象。 ```java String text = "需要转换文本内容"; ByteBuffer byteBuffer = charsetEBCDIC.encode(text); ``` 3. 将ByteBuffer对象的内容转换成字符数组。 ```java char[] charArray = charsetGBK.decode(byteBuffer).array(); ``` 4. 将字符数组转换成字符串。 ```java String result = new String(charArray); ``` 完整的代码示例: ```java import java.nio.ByteBuffer; import java.nio.charset.Charset; public class EBCDICAndGBKConverter { public static void main(String[] args) { // 创建EBCDIC编码和GBK编码的Charset对象 Charset charsetEBCDIC = Charset.forName("IBM1047"); Charset charsetGBK = Charset.forName("GBK"); // 需要转换文本内容 String text = "需要转换文本内容"; // 将需要转换文本内容转换成ByteBuffer对象 ByteBuffer byteBuffer = charsetEBCDIC.encode(text); // 将ByteBuffer对象的内容转换成字符数组 char[] charArray = charsetGBK.decode(byteBuffer).array(); // 将字符数组转换成字符串 String result = new String(charArray); System.out.println(result); } } ``` 注意:在进行字符编码转换时,需要考虑字符集的兼容性问题,否则可能会出现乱码等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值