プログラマメモ2 - programmer no memo2

さあEBCDIC 2010/09/23

文字コードです。
世の中人知れず、文字コードで悩み苦しんでいる人がたくさんいるのだなーと思う今日この頃です。
時間にするとかなりな時間になるのだろうなーと思います。
僕の知らないところで規格を考えている人たちに敬意を表します。

EBCDICというのがあるそうです。



wikipediaをちらちら見てますと、ホストコンピュータというのはぜんぶIBM起源なのですかね?

wikipediaにあった表を変換してます。

NUL SOH STX ETX SEL HT RNL DEL GE SPS RPT VT FF CR SO/LS1 SI/LS0
DLE DC1 DC2 DC3 RES/ENP NL BS POC CAN EM UBS CU1 IFS IGS IRS IUS/ITB
DS SOS FS WUS BYP/INP LF ETB ESC SA SFE SM/SW CSP MFA ENQ ACK BEL
(予約) (予約) SYN IR PP TRN NBS EOT SBS IT RFF CU3 DC4 NAK (予約) SUB
sp 。 「 」 、 ・ ヲ ァ ィ ¢ . < ( + │
& ゥ ェ ォ ャ ュ ョ ッ ー ア ! $ * ) ; ¬
- / イ ウ エ オ カ キ ク ケ | , % _ > ?
コ サ シ ス セ ソ タ チ ツ ` : # @ ' = "
テ a b c d e f g h i ト ナ ニ ヌ ネ ノ
ハ j k l m n o p q r ヒ フ ヘ ホ マ ミ
ム ~ s t u v w x y z メ モ ヤ ユ ヨ ラ
リ ル レ ロ ワ ン ゛ ゜
{ A B C D E F G H I
} J K L M N O P Q R
\ S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 EO


で、上のデータをもとにHTMLに表にしてます。

0123456789abcdef
0NULSOHSTXETXSELHTRNLDELGESPSRPTVTFFCRSO/LS1SI/LS0
1DLEDC1DC2DC3RES/ENPNLBSPOCCANEMUBSCU1IFSIGSIRSIUS/ITB
2DSSOSFSWUSBYP/INPLFETBESCSASFESM/SWCSPMFAENQACKBEL
3(予約)(予約)SYNIRPPTRNNBSEOTSBSITRFFCU3DC4NAK(予約)SUB
4sp?.<(+
5&!$*);?
6-/|,%_>?
7:#@'="
8abcdefghi
9jklmnopqr
a?stuvwxyz
b
c{ABCDEFGHI
d}JKLMNOPQR
e\STUVWXYZ
f0123456789EO



ソース
package d;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;

import u.Utils;

public class TestEBCDIC {
public static void main(String[] args) throws URISyntaxException,
IOException {
a();
}

static void a() throws URISyntaxException, IOException {
File file = new File(TestEBCDIC.class.getResource("doc-files/tbl.txt")
.toURI());
String tbl = Utils.getAtOnce(file, "utf-8");
// System.out.println(tbl);
String[] lines = tbl.split("\n");
{
System.out.print(" ");
for (int i = 0; i <= 0xf; i++) {
System.out.printf("%h ", i);
}
System.out.println();
int c = 0;
for (String line : lines) {
System.out.printf("%h ", c++);
String[] ss = line.split("\t");
for (String s : ss) {
System.out.printf("%s ", s);
}
System.out.println();
}
}

{// HTML table
System.out
.println("<table width='400' border='1' style='font-size: 8pt;'>");
System.out.print("<tr>");
System.out.printf("<td></td>");
for (int i = 0; i <= 0xf; i++) {
System.out.printf("<td>%h</td>", i);
}
System.out.println("</tr>");
int c = 0;
for (String line : lines) {
System.out.print("<tr>");
System.out.printf("<td>%h</td>", c++);
String[] ss = line.split("\t");
for (String s : ss) {
System.out.printf("<td>%s</td>", s);
}
System.out.println("</tr>");
}

System.out.println("</table>");
}

}
}

: