文字コード

大ざっぱな文字コードと、相互変換についての説明。ウソも混じっているかも‥‥。
主目的は EUC → SJIS 変換を調べた際の覚え書きです。間違いがあっても気にしない。お互いに存在しない文字や記号がある場合も考えられますが、そういうことを気にする方はさらに詳しく調べてください。
  • ANK コード(JIS X 0201)
    文字制御(改行など)、数字、アルファベット(大文字、小文字)、記号、カタカナ。俗に言う「半角文字」「1バイト文字」。
    0x00 - 0x7F の範囲を「ASCII コード」と呼ぶ。

  • JIS コード
    JIS規格により定められた日本語文字コード。ANKを拡張した物。
    7bits。日本語を表現するためにはその前後にエスケープコードを入れる。
    例) 0x1B 0x24 0x42 漢字 0x1B 0x28 0x4A
    1バイト目: 0x21 - 0x7E
    2バイト目: 0x21 - 0x7E

    半角カタカナを使う場合はエスケープコード( 0x1B 0x28 0x49 )か SI/SO ( 0x0E/0x0F )を使う。半角カタカナ自体のコードは ANK の半角カタカナを 0x21 - 0x5F にずらした物。

  • SJIS(Shift JIS) コード
    MS-DOS の頃?から扱われてきたコード。JISコードでの運用に不便があったので、JISコードをずらした(Shift)物。一般的に Windows などで使われる。「全角文字」「2バイト文字」と呼ばれる。1バイト目を 0x80 以降にずらされたのでエスケープコードを必要としない。半角カタカナは使わない方が望ましいが、全角に変換するかどうかは採用者次第。
    1バイト目: 0x81 - 0x9E 0xE0 - 0xEE
    2バイト目: 0x40 - 0x7E 0x80 - 0xFC ( 0x7F は未使用)

  • EUC コード
    UNIX系で主に使われる。JISコードの第1、第2バイト双方に 0x80 を加算したもの。半角仮名は 0x8E をSJISの仮名コードの前に置いて2バイトで表現する。
    1バイト目: 0xA1 - 0xFE (半角カタカナは 0x8E)
    2バイト目: 0xA1 - 0xFE (半角カタカナは SJIS コード)
00102030405060708090A0B0C0D0E0F0
00NUL(\0)DLESP0@P`p
01SOHDC1!1AQaq
02STXDC2"2BRbr
03ETXDC3#3CScs
04EOTDC4$4DTdt
05ENQNAK%5EUeu
06ACKSYN"6FVfv
07BEL(\a)ETB'7GWgw
08BS(\b)CAN(8HXhx
09HT(\t)EM)9IYiy
0ALF(\n)SUB*:JZjz
0BVT(\v)ESC+;K[k{
0CFF(\f)FS,<L\l|
0DCR(\r)GS-=M]m}
0ESORS.>N^n~
0FSIUS/?O_oDELソ

文字コード変換