さあえびせでぃっくその2 2010/09/23

さあEBCDICその2


の表をもとに、バイトを読めるように変換してみます。
wikipediaの表をもとにして、文字列を連結して、配列にみたてて変換してるだけです。

これで無理くり読めるようにはなるのかな...

package d;

import java.io.UnsupportedEncodingException;

public class TestEBCDIC2 {

public static void main(String[] args) throws UnsupportedEncodingException {
b();
}

static void b() throws UnsupportedEncodingException {
int[] bs = { 0xC7, 0xF4, 0xF0, 0xF1 };//G401と表示されることを期待している
for (int b : bs) {
System.out.print("[" + EBCDIC(b) + "]");
}
}

/**
* EBCDIK?からの変換
* 制御文字は考慮してない。
* @param b
* @return
* @throws UnsupportedEncodingException
*/
static String EBCDIC(int b) throws UnsupportedEncodingException {
// System.out.printf("%d %d %d %n", 0x40, pos, 0xf9);
if (b < 0x40 || 0xf9 < b)
return "";
String BASE = " 。「」、・ヲァィ¢.<(+│&ゥェォャュョッーア!$*);¬-/イウエオカキクケ|,%_>?コサシスセソタチツ`:#@'=\"テabcdefghiトナニヌネノハjklmnopqrヒフヘホマミム~stuvwxyzメモヤユヨラリルレロワン゛゜ {ABCDEFGHI }JKLMNOPQR \\ STUVWXYZ 0123456789 ";
char[] cs = BASE.toCharArray();
String s = Character.toString(cs[b - 0x40]);
return s;
}
}

: