import java.io.*;
public class coder{
/**
* 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” */
“PLD”, /* ASCII 139 0x8B “Partial Line Down” */
“PLU”, /* ASCII 140 0x8C “Partial Line Up” */
“RI”, /* ASCII 141 0x8D “Reverse Index” */
“SS2”, /* ASCII 142 0x8E “Single Shift Two” */
“SS3”, /* ASCII 143 0x8F “Single Shift Three” */
“DCS”, /* ASCII 144 0x90 “Device Control String” */
“PU1”, /* ASCII 145 0x91 “Private Use One” */
“PU2”, /* ASCII 146 0x92 “Private Use Two” */
“STS”, /* ASCII 147 0x93 “Set Transmit State” */
“CCH”, /* ASCII 148 0x94 “Cancel Character” */
“MW”, /* ASCII 149 0x95 “Message Waiting” */
“SPA”, /* ASCII 150 0x96 “Start of Protected Area” */
“EPA”, /* ASCII 151 0x97 “End of Protected Area” */
“”, /* ASCII 152 0x98 “Reserved” */
“”, /* ASCII 153 0x99 “Reserved” */
“”, /* ASCII 154 0x9A “Reserved” */
“CSI”, /* ASCII 155 0x9B “Control Sequence Introducer” */
“ST”, /* ASCII 156 0x9C “String Terminator” */
“OSC”, /* ASCII 157 0x9D “Operating System Command” */
“PM”, /* ASCII 158 0x9E “Privacy Message” */
“APC”, /* ASCII 159 0x9F “Application Program Command” */
“nbsp”, /* ASCII 160 0xA0 “non breaking space” */
“iexcl”, /* ASCII 161 0xA1 “inverted exclamation” */
“cent”, /* ASCII 162 0xA2 “Cent Sign” */
“pound”, /* ASCII 163 0xA3 “pound” */
“curren”, /* ASCII 164 0xA4 “currency” */
“yen”, /* ASCII 165 0xA5 “yen” */
“brvbar”, /* ASCII 166 0xA6 “breve bar” */
“sect”, /* ASCII 167 0xA7 “section” */
“uml”, /* ASCII 168 0xA8 “umlaut” */
“copy”, /* ASCII 169 0xA9 “copyright” */
“ordf”, /* ASCII 170 0xAA “feminine ordinal” */
“laquo”, /* ASCII 171 0xAB “left angle quote” */
“not”, /* ASCII 172 0xAC “Logical NOT” */
“shy”, /* ASCII 173 0xAD “soft hyphen” */
“reg”, /* ASCII 174 0xAE “registered trademark” */
“macr”, /* ASCII 175 0xAF “macron” */
“deg”, /* ASCII 176 0xB0 “degree” */
“plusmn”, /* ASCII 177 0xB1 “plusminus” */
“sup2”, /* ASCII 178 0xB2 “superscript 2” */
“sup3”, /* ASCII 179 0xB3 “superscript 3” */
“acute”, /* ASCII 180 0xB4 “acute” */
“micro”, /* ASCII 181 0xB5 “micro” */
“para”, /* ASCII 182 0xB6 “paragraph” */
“middot”, /* ASCII 183 0xB7 “mid dot” */
“cedil”, /* ASCII 184 0xB8 “cedilla” */
“sup1”, /* ASCII 185 0xB9 “superscript 1” */
“ordm”, /* ASCII 186 0xBA “masculine ordinal” */
“raquo”, /* ASCII 187 0xBB “right angle quote” */
“frac14”, /* ASCII 188 0xBC “1/4” */
“frac12”, /* ASCII 189 0xBD “1/2” */
“frac34”, /* ASCII 190 0xBE “3/4” */
“iquest”, /* ASCII 191 0xBF “inverted ?” */
“Agrave”, /* ASCII 192 0xC0 “Agrave” */
“Aacute”, /* ASCII 193 0xC1 “Aacute” */
“Acirc”, /* ASCII 194 0xC2 “Acirc” */
“Atilde”, /* ASCII 195 0xC3 “Atilde” */
“Auml”, /* ASCII 196 0xC4 “Auml” */
“Aring”, /* ASCII 197 0xC5 “Aring” */
“AElig”, /* ASCII 198 0xC6 “AElig” */
“Ccedil”, /* ASCII 199 0xC7 “Ccedil” */
“Egrave”, /* ASCII 200 0xC8 “Egrave” */
“Eacute”, /* ASCII 201 0xC9 “Eacute” */
“Ecirc”, /* ASCII 202 0xCA “Ecirc” */
“Euml”, /* ASCII 203 0xCB “Euml” */
“Igrave”, /* ASCII 204 0xCC “Igrave” */
“Iacute”, /* ASCII 205 0xCD “Iacute” */
“Icirc”, /* ASCII 206 0xCE “Icirc” */
“Iuml”, /* ASCII 207 0xCF “Iuml” */
“ETH”, /* ASCII 208 0xD0 “ETH” */
“Ntilde”, /* ASCII 209 0xD1 “Ntilde” */
“Ograve”, /* ASCII 210 0xD2 “Ograve” */
“Oacute”, /* ASCII 211 0xD3 “Oacute” */
“Ocirc”, /* ASCII 212 0xD4 “Ocirc” */
“Otilde”, /* ASCII 213 0xD5 “Otilde” */
“Ouml”, /* ASCII 214 0xD6 “Ouml” */
“times”, /* ASCII 215 0xD7 “times” */
“Oslash”, /* ASCII 216 0xD8 “Oslash” */
“Ugrave”, /* ASCII 217 0xD9 “Ugrave” */
“Uacute”, /* ASCII 218 0xDA “Uacute” */
“Ucirc”, /* ASCII 219 0xDB “Ucirc” */
“Uuml”, /* ASCII 220 0xDC “Uuml” */
“Yacute”, /* ASCII 221 0xDD “Yacute” */
“THORN”, /* ASCII 222 0xDE “THORN” */
“szlig”, /* ASCII 223 0xDF “szlig” */
“agrave”, /* ASCII 224 0xE0 “agrave” */
“aacute”, /* ASCII 225 0xE1 “aacute” */
“acirc”, /* ASCII 226 0xE2 “acirc” */
“atilde”, /* ASCII 227 0xE3 “atilde” */
“auml”, /* ASCII 228 0xE4 “auml” */
“aring”, /* ASCII 229 0xE5 “aring” */
“aelig”, /* ASCII 230 0xE6 “aelig” */
“ccedil”, /* ASCII 231 0xE7 “ccedil” */
“egrave”, /* ASCII 232 0xE8 “egrave” */
“eacute”, /* ASCII 233 0xE9 “eacute” */
“ecirc”, /* ASCII 234 0xEA “ecirc” */
“euml”, /* ASCII 235 0xEB “euml” */
“igrave”, /* ASCII 236 0xEC “igrave” */
“iacute”, /* ASCII 237 0xED “iacute” */
“icirc”, /* ASCII 238 0xEE “icirc” */
“iuml”, /* ASCII 239 0xEF “iuml” */
“eth”, /* ASCII 240 0xF0 “eth” */
“ntilde”, /* ASCII 241 0xF1 “ntilde” */
“ograve”, /* ASCII 242 0xF2 “ograve” */
“oacute”, /* ASCII 243 0xF3 “oacute” */
“ocirc”, /* ASCII 244 0xF4 “ocirc” */
“otilde”, /* ASCII 245 0xF5 “otilde” */
“ouml”, /* ASCII 246 0xF6 “ouml” */
“divide”, /* ASCII 247 0xF7 “divide” */
“oslash”, /* ASCII 248 0xF8 “oslash” */
“ugrave”, /* ASCII 249 0xF9 “ugrave” */
“uacute”, /* ASCII 250 0xFA “uacute” */
“ucirc”, /* ASCII 251 0xFB “ucirc” */
“uuml”, /* ASCII 252 0xFC “uuml” */
“yacute”, /* ASCII 253 0xFD “yacute” */
“thorn”, /* ASCII 254 0xFE “thorn” */
“yuml” /* ASCII 255 0xFF “yuml” */
};
/**
* EBCDIC码对应表
*/
public static final String [] EBCDIC={
“NUL”, /* EBCDIC 0 0x00 “Null” */
“SOH”, /* EBCDIC 1 0x01 “Start of Heading” */
“STX”, /* EBCDIC 2 0x02 “Start of Text” */
“ETX”, /* EBCDIC 3 0x03 “End of Text” */
“PF”, /* EBCDIC 4 0x04 “Punch Off” */
“HT”, /* EBCDIC 5 0x05 “Horizontal Tab” */
“LC”, /* EBCDIC 6 0x06 “Lower Case” */
“DEL”, /* EBCDIC 7 0x07 “Delete” */
“”, /* EBCDIC 8 0x08 “” */
“”, /* EBCDIC 9 0x09 “” */
“SMM”, /* EBCDIC 10 0x0A “Start of Manual Message” */
“VT”, /* EBCDIC 11 0x0B “Vertical Tab” */
“FF”, /* EBCDIC 12 0x0C “Form Feed” */
“CR”, /* EBCDIC 13 0x0D “Carriage Return” */
“SO”, /* EBCDIC 14 0x0E “Shift Out” */
“SI”, /* EBCDIC 15 0x0F “Shift In” */
“DLE”, /* EBCDIC 16 0x10 “Data Link Escape” */
“DC1”, /* EBCDIC 17 0x11 “Device Control 1” */
“DC2”, /* EBCDIC 18 0x12 “Device Control 2” */
“TM”, /* EBCDIC 19 0x13 “Tape Mark” */
“RES”, /* EBCDIC 20 0x14 “Restore” */
“NL”, /* EBCDIC 21 0x15 “New Line” */
“BS”, /* EBCDIC 22 0x16 “Backspace” */
“IL”, /* EBCDIC 23 0x17 “Idle” */
“CAN”, /* EBCDIC 24 0x18 “Cancel” */
“EM”, /* EBCDIC 25 0x19 “End of Medium” */
“CC”, /* EBCDIC 26 0x1A “Cursor Control” */
“CU1”, /* EBCDIC 27 0x1B “Customer Use 1” */
“IFS”, /* EBCDIC 28 0x1C “Interchange File Separator” */
“IGS”, /* EBCDIC 29 0x1D “Interchange Group Separator” */
“IRS”, /* EBCDIC 30 0x1E “Interchange Record Separator” */
“IUS”, /* EBCDIC 31 0x1F “Interchange Unit Separator” */
“DS”, /* EBCDIC 32 0x20 “Digit Select” */
“SOS”, /* EBCDIC 33 0x21 “Start of Significance” */
“FS”, /* EBCDIC 34 0x22 “Field Separator” */
“”, /* EBCDIC 35 0x23 “” */
“BYP”, /* EBCDIC 36 0x24 “Bypass” */
“LF”, /* EBCDIC 37 0x25 “Line Feed” */
“ETB”, /* EBCDIC 38 0x26 “End of Transmission Block” */
“ESC”, /* EBCDIC 39 0x27 “Escape” */
“”, /* EBCDIC 40 0x28 “” */
“”, /* EBCDIC 41 0x29 “” */
“SM”, /* EBCDIC 42 0x2A “Set Mode” */
“CU2”, /* EBCDIC 43 0x2B “Customer Use 2” */
“”, /* EBCDIC 44 0x2C “” */
“ENQ”, /* EBCDIC 45 0x2D “Enquiry” */
“ACK”, /* EBCDIC 46 0x2E “Acknowledge” */
“BEL”, /* EBCDIC 47 0x2F “Bell” */
“”, /* EBCDIC 48 0x30 “” */
“”, /* EBCDIC 49 0x31 “” */
“SYN”, /* EBCDIC 50 0x32 “Synchronous Idle” */
“”, /* EBCDIC 51 0x33 “” */
“PN”, /* EBCDIC 52 0x34 “Punch On” */
“RS”, /* EBCDIC 53 0x35 “Reader Stop” */
“UC”, /* EBCDIC 54 0x36 “Upper Case” */
“EOT”, /* EBCDIC 55 0x37 “End of Transmission” */
“”, /* EBCDIC 56 0x38 “” */
“”, /* EBCDIC 57 0x39 “” */
“”, /* EBCDIC 58 0x3A “” */
“CU3”, /* EBCDIC 59 0x3B “Customer Use 3” */
“DC4”, /* EBCDIC 60 0x3C “Device Control 4” */
“NAK”, /* EBCDIC 61 0x3D “Negative Acknowledge” */
“”, /* EBCDIC 62 0x3E “” */
“SUB”, /* EBCDIC 63 0x3F “Substitute” */
“SP”, /* EBCDIC 64 0x40 “Space” */
“”, /* EBCDIC 65 0x41 “” */
“”, /* EBCDIC 66 0x42 “” */
“”, /* EBCDIC 67 0x43 “” */
“”, /* EBCDIC 68 0x44 “” */
“”, /* EBCDIC 69 0x45 “” */
“”, /* EBCDIC 70 0x46 “” */
“”, /* EBCDIC 71 0x47 “” */
“”, /* EBCDIC 72 0x48 “” */
“”, /* EBCDIC 73 0x49 “” */
“cent”, /* EBCDIC 74 0x4A “Cent Sign” */
“.”, /* EBCDIC 75 0x4B “Period, Decimal Point, dot” */
“<“, /* EBCDIC 76 0x4C “Less-than Sign” */
“(“, /* EBCDIC 77 0x4D “Left Parenthesis” */
“+”, /* EBCDIC 78 0x4E “Plus Sign” */
“|”, /* EBCDIC 79 0x4F “Logical OR” */
“&”, /* EBCDIC 80 0x50 “Ampersand” */
“”, /* EBCDIC 81 0x51 “” */
“”, /* EBCDIC 82 0x52 “” */
“”, /* EBCDIC 83 0x53 “” */
“”, /* EBCDIC 84 0x54 “” */
“”, /* EBCDIC 85 0x55 “” */
“”, /* EBCDIC 86 0x56 “” */
“”, /* EBCDIC 87 0x57 “” */
“”, /* EBCDIC 88 0x58 “” */
“”, /* EBCDIC 89 0x59 “” */
“!”, /* EBCDIC 90 0x5A “Exclamation Point” */
“$”, /* EBCDIC 91 0x5B “Dollar Sign” */
“*”, /* EBCDIC 92 0x5C “Asterisk, star” */
“)”, /* EBCDIC 93 0x5D “Right Parenthesis” */
“;”, /* EBCDIC 94 0x5E “Semicolon” */
“not”, /* EBCDIC 95 0x5F “Logical NOT” */
“-“, /* EBCDIC 96 0x60 “Hyphen, Minus Sign” */
“/”, /* EBCDIC 97 0x61 “slash” */
“”, /* EBCDIC 98 0x62 “” */
“”, /* EBCDIC 99 0x63 “” */
“”, /* EBCDIC 100 0x64 “” */
“”, /* EBCDIC 101 0x65 “” */
“”, /* EBCDIC 102 0x66 “” */
“”, /* EBCDIC 103 0x67 “” */
“”, /* EBCDIC 104 0x68 “” */
“”, /* EBCDIC 105 0x69 “” */
“”, /* EBCDIC 106 0x6A “” */
“,”, /* EBCDIC 107 0x6B “Comma” */
“%”, /* EBCDIC 108 0x6C “Percent” */
“_”, /* EBCDIC 109 0x6D “Underline, Underscore” */
“>”, /* EBCDIC 110 0x6E “Greater-than Sign” */
“?”, /* EBCDIC 111 0x6F “Question Mark” */
“”, /* EBCDIC 112 0x70 “” */
“”, /* EBCDIC 113 0x71 “” */
“”, /* EBCDIC 114 0x72 “” */
“”, /* EBCDIC 115 0x73 “” */
“”, /* EBCDIC 116 0x74 “” */
“”, /* EBCDIC 117 0x75 “” */
“”, /* EBCDIC 118 0x76 “” */
“”, /* EBCDIC 119 0x77 “” */
“”, /* EBCDIC 120 0x78 “” */
“”, /* EBCDIC 121 0x79 “” */
“:”, /* EBCDIC 122 0x7A “Colon” */
“#”, /* EBCDIC 123 0x7B “Number Sign” */
“@”, /* EBCDIC 124 0x7C “At Sign” */
“‘”, /* EBCDIC 125 0x7D “Apostrophe, Prime” */
“=”, /* EBCDIC 126 0x7E “Equal Sign” */
“\””, /* EBCDIC 127 0x7F “Quotation Mark” */
“”, /* EBCDIC 128 0x80 “” */
“a”, /* EBCDIC 129 0x81 “a” */
“b”, /* EBCDIC 130 0x82 “b” */
“c”, /* EBCDIC 131 0x83 “c” */
“d”, /* EBCDIC 132 0x84 “d” */
“e”, /* EBCDIC 133 0x85 “e” */
“f”, /* EBCDIC 134 0x86 “f” */
“g”, /* EBCDIC 135 0x87 “g” */
“h”, /* EBCDIC 136 0x88 “h” */
“i”, /* EBCDIC 137 0x89 “i” */
“”, /* EBCDIC 138 0x8A “” */
“”, /* EBCDIC 139 0x8B “” */
“”, /* EBCDIC 140 0x8C “” */
“”, /* EBCDIC 141 0x8D “” */
“”, /* EBCDIC 142 0x8E “” */
“”, /* EBCDIC 143 0x8F “” */
“”, /* EBCDIC 144 0x90 “” */
“j”, /* EBCDIC 145 0x91 “j” */
“k”, /* EBCDIC 146 0x92 “k” */
“l”, /* EBCDIC 147 0x93 “l” */
“m”, /* EBCDIC 148 0x94 “m” */
“n”, /* EBCDIC 149 0x95 “n” */
“o”, /* EBCDIC 150 0x96 “o” */
“p”, /* EBCDIC 151 0x97 “p” */
“q”, /* EBCDIC 152 0x98 “q” */
“r”, /* EBCDIC 153 0x99 “r” */
“”, /* EBCDIC 154 0x9A “” */
“”, /* EBCDIC 155 0x9B “” */
“”, /* EBCDIC 156 0x9C “” */
“”, /* EBCDIC 157 0x9D “” */
“”, /* EBCDIC 158 0x9E “” */
“”, /* EBCDIC 159 0x9F “” */
“”, /* EBCDIC 160 0xA0 “” */
“”, /* EBCDIC 161 0xA1 “” */
“s”, /* EBCDIC 162 0xA2 “s” */
“t”, /* EBCDIC 163 0xA3 “t” */
“u”, /* EBCDIC 164 0xA4 “u” */
“v”, /* EBCDIC 165 0xA5 “v” */
“w”, /* EBCDIC 166 0xA6 “w” */
“x”, /* EBCDIC 167 0xA7 “x” */
“y”, /* EBCDIC 168 0xA8 “y” */
“z”, /* EBCDIC 169 0xA9 “z” */
“”, /* EBCDIC 170 0xAA “” */
“”, /* EBCDIC 171 0xAB “” */
“”, /* EBCDIC 172 0xAC “” */
“”, /* EBCDIC 173 0xAD “” */
“”, /* EBCDIC 174 0xAE “” */
“”, /* EBCDIC 175 0xAF “” */
“”, /* EBCDIC 176 0xB0 “” */
“”, /* EBCDIC 177 0xB1 “” */
“”, /* EBCDIC 178 0xB2 “” */
“”, /* EBCDIC 179 0xB3 “” */
“”, /* EBCDIC 180 0xB4 “” */
“”, /* EBCDIC 181 0xB5 “” */
“”, /* EBCDIC 182 0xB6 “” */
“”, /* EBCDIC 183 0xB7 “” */
“”, /* EBCDIC 184 0xB8 “” */
“`”, /* EBCDIC 185 0xB9 “Grave Accent” */
“”, /* EBCDIC 186 0xBA “” */
“”, /* EBCDIC 187 0xBB “” */
“”, /* EBCDIC 188 0xBC “” */
“”, /* EBCDIC 189 0xBD “” */
“”, /* EBCDIC 190 0xBE “” */
“”, /* EBCDIC 191 0xBF “” */
“”, /* EBCDIC 192 0xC0 “” */
“A”, /* EBCDIC 193 0xC1 “A” */
“B”, /* EBCDIC 194 0xC2 “B” */
“C”, /* EBCDIC 195 0xC3 “C” */
“D”, /* EBCDIC 196 0xC4 “D” */
“E”, /* EBCDIC 197 0xC5 “E” */
“F”, /* EBCDIC 198 0xC6 “F” */
“G”, /* EBCDIC 199 0xC7 “G” */
“H”, /* EBCDIC 200 0xC8 “H” */
“I”, /* EBCDIC 201 0xC9 “I” */
“”, /* EBCDIC 202 0xCA “” */
“”, /* EBCDIC 203 0xCB “” */
“”, /* EBCDIC 204 0xCC “” */
“”, /* EBCDIC 205 0xCD “” */
“”, /* EBCDIC 206 0xCE “” */
“”, /* EBCDIC 207 0xCF “” */
“”, /* EBCDIC 208 0xD0 “” */
“J”, /* EBCDIC 209 0xD1 “J” */
“K”, /* EBCDIC 210 0xD2 “K” */
“L”, /* EBCDIC 211 0xD3 “L” */
“M”, /* EBCDIC 212 0xD4 “M” */
“N”, /* EBCDIC 213 0xD5 “N” */
“O”, /* EBCDIC 214 0xD6 “O” */
“P”, /* EBCDIC 215 0xD7 “P” */
“Q”, /* EBCDIC 216 0xD8 “Q” */
“R”, /* EBCDIC 217 0xD9 “R” */
“”, /* EBCDIC 218 0xDA “” */
“”, /* EBCDIC 219 0xDB “” */
“”, /* EBCDIC 220 0xDC “” */
“”, /* EBCDIC 221 0xDD “” */
“”, /* EBCDIC 222 0xDE “” */
“”, /* EBCDIC 223 0xDF “” */
“”, /* EBCDIC 224 0xE0 “” */
“”, /* EBCDIC 225 0xE1 “” */
“S”, /* EBCDIC 226 0xE2 “S” */
“T”, /* EBCDIC 227 0xE3 “T” */
“U”, /* EBCDIC 228 0xE4 “U” */
“V”, /* EBCDIC 229 0xE5 “V” */
“W”, /* EBCDIC 230 0xE6 “W” */
“X”, /* EBCDIC 231 0xE7 “X” */
“Y”, /* EBCDIC 232 0xE8 “Y” */
“Z”, /* EBCDIC 233 0xE9 “Z” */
“”, /* EBCDIC 234 0xEA “” */
“”, /* EBCDIC 235 0xEB “” */
“”, /* EBCDIC 236 0xEC “” */
“”, /* EBCDIC 237 0xED “” */
“”, /* EBCDIC 238 0xEE “” */
“”, /* EBCDIC 239 0xEF “” */
“0”, /* EBCDIC 240 0xF0 “0” */
“1”, /* EBCDIC 241 0xF1 “1” */
“2”, /* EBCDIC 242 0xF2 “2” */
“3”, /* EBCDIC 243 0xF3 “3” */
“4”, /* EBCDIC 244 0xF4 “4” */
“5”, /* EBCDIC 245 0xF5 “5” */
“6”, /* EBCDIC 246 0xF6 “6” */
“7”, /* EBCDIC 247 0xF7 “7” */
“8”, /* EBCDIC 248 0xF8 “8” */
“9”, /* EBCDIC 249 0xF9 “9” */
“”, /* EBCDIC 250 0xFA “” */
“”, /* EBCDIC 251 0xFB “” */
“”, /* EBCDIC 252 0xFC “” */
“”, /* EBCDIC 253 0xFD “” */
“”, /* EBCDIC 254 0xFE “” */
“” /* EBCDIC 255 0xFF “” */
};
/**
* ASCII->EBCDIC转换表
*/
private static byte[] AToE={
/*0 */ 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
/*16 */ 16, 17, 18, 63, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
/*32 */ 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
/*48 */ -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, 122, 94, 76, 126, 110, 111,
/*64 */ 124, -63, -62, -61, -60, -59, -58, -57, -56, -55, -47, -46, -45, -44, -43, -42,
/*80 */ -41, -40, -39, -30, -29, -28, -27, -26, -25, -24, -23, 63, 63, 63, 63, 109,
/*96 */ -71, -127, -126, -125, -124, -123, -122, -121, -120, -119, -111, -110, -109, -108, -107, -106,
/*112*/ -105, -104, -103, -94, -93, -92, -91, -90, -89, -88, -87, 63, 79, 63, 63, 7,
/*128*/ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
/*144*/ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
/*160*/ 64, 63, 74, 123, 63, 63, 63, 63, 63, 63, 63, 63, 95, 96, 63, 63,
/*176*/ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
/*192*/ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
/*208*/ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
/*224*/ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
/*240*/ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63
};
/**
* EBCDIC->ASCII转换表
*/
private static byte[] EToA={
/*0 */ 0, 1, 2, 3, 26, 9, 26, 127, 26, 26, 26, 11, 12, 13, 14, 15,
/*16 */ 16, 17, 18, 26, 26, 10, 8, 26, 24, 25, 26, 26, 28, 29, 30, 31,
/*32 */ 26, 26, 28, 26, 26, 10, 23, 27, 26, 26, 26, 26, 26, 5, 6, 7,
/*48 */ 26, 26, 22, 26, 26, 30, 26, 4, 26, 26, 26, 26, 20, 21, 26, 26,
/*64 */ 32, 26, 26, 26, 26, 26, 26, 26, 26, 26, -94, 46, 60, 40, 43, 124,
/*80 */ 38, 26, 26, 26, 26, 26, 26, 26, 26, 26, 33, 36, 42, 41, 59, -84,
/*96 */ 45, 47, 26, 26, 26, 26, 26, 26, 26, 26, 26, 44, 37, 95, 62, 63,
/*112*/ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 58, 35, 64, 39, 61, 34,
/*128*/ 26, 97, 98, 99, 100, 101, 102, 103, 104, 105, 26, 26, 26, 26, 26, 26,
/*144*/ 26, 106, 107, 108, 109, 110, 111, 112, 113, 114, 26, 26, 26, 26, 26, 26,
/*160*/ 26, 26, 115, 116, 117, 118, 119, 120, 121, 122, 26, 26, 26, 26, 26, 26,
/*176*/ 26, 26, 26, 26, 26, 26, 26, 26, 26, 96, 26, 26, 26, 26, 26, 26,
/*192*/ 26, 65, 66, 67, 68, 69, 70, 71, 72, 73, 26, 26, 26, 26, 26, 26,
/*208*/ 26, 74, 75, 76, 77, 78, 79, 80, 81, 82, 26, 26, 26, 26, 26, 26,
/*224*/ 26, 26, 83, 84, 85, 86, 87, 88, 89, 90, 26, 26, 26, 26, 26, 26,
/*240*/ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 26, 26, 26, 26, 26, 26
};
/**
* 字节的ASCII->EBCDIC转换函数
*/
public static int ASCIIToEBCDIC(int ascii){
return AToE[ascii&0xff]&0xff;
}
/**
* 字节的EBCDIC->ASCII转换函数
*/
public static int EBCDICToASCII(int ebcdic){
return EToA[ebcdic&0xff]&0xff;
}
/**
* 字节流的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;
}
/**
* 字节流的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;
}
/**
* 字符串的ASCII->EBCDIC转换函数
*/
public static String ASCIIToEBCDIC(String ascii){
return new String(ASCIIToEBCDIC(ascii.getBytes()));
}
/**
* 字符串的EBCDIC->ASCII转换函数
*/
public static String EBCDICToASCII(String ebcdic){
return new String(EBCDICToASCII(ebcdic.getBytes()));
}
/**
* 文件的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);
}
}
/**
* 文件的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);
}
}
public static void main(String[] args){
//ASCIIToEBCDIC(“in.txt”,”out.txt”);
EBCDICToASCII(“in.txt”,”out.txt”);
}
}
转载于:https://www.cnblogs.com/happy-wangtao/archive/2006/12/31/608719.html