Quantcast
Channel: HAPPY*TRAP » Ruby
Viewing all articles
Browse latest Browse all 12

[Ruby] ASCIIコード表を出力する

$
0
0


RubyでASCIIコード表を出力してみました。

ASCIIコードのうち、制御文字は適当な文字列を割り当てて表示してます。
また、出力はHTMLタグです(このブログに貼れるように)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/ruby
# -*- coding: utf-8 -*-

# 制御文字用文字列
ctrlChars = {
    0 => 'NUL(ヌル文字)',
    1 => 'SOH(ヘッダ開始)',
    2 => 'STX(テキスト開始)',
    3 => 'ETX(テキスト終了)',
    4 => 'EOT(転送終了)',
    5 => 'ENQ(照会)',
    6 => 'ACK(肯定応答)',
    7 => 'BEL(ビープ音)',
    8 => 'BS(バックスペース)',
    9 => 'HT(水平タブ)',
    10 => 'LF(改行)',
    11 => 'VT(垂直タブ)',
    12 => 'FF(改ページ)',
    13 => 'CR(復帰)',
    14 => 'SO(シフトアウト)',
    15 => 'SI(シフトイン)',
    16 => 'DLE(伝送制御拡張)',
    17 => 'DC1(装置制御1)',
    18 => 'DC2(装置制御2)',
    19 => 'DC3(装置制御3)',
    20 => 'DC4(装置制御4)',
    21 => 'NAK(否定応答)',
    22 => 'SYN(同期信号)',
    23 => 'ETB(転送ブロック終了)',
    24 => 'CAN(取り消し)',
    25 => 'EM(媒体終了)',
    26 => 'SUB(置き換え)',
    27 => 'ESC(エスケープ)',
    28 => 'FS(ファイル区切り)',
    29 => 'GS(グループ区切り)',
    30 => 'RS(レコード区切り)',
    31 => 'US(ユニット区切り)',
    127 => 'DEL(削除)'
}

puts '<table>'
puts '<tr><td>10進数</td><td>16進数</td><td>文字</td>'

for i in 0..127 do
  if i.between?(32, 126)
    # 図形文字
    puts '<tr><td>%d</td><td>0x%x</td><td>%c</td>' % [i, i, i]
  else
    # 制御文字
    puts '<tr><td>%03d</td><td>0x%x</td><td>%s</td>' % [i, i, ctrlChars[i]]
  end
end

puts '</table>'

出力:
10進数16進数文字
0000×0NUL(ヌル文字)
0010×1SOH(ヘッダ開始)
0020×2STX(テキスト開始)
0030×3ETX(テキスト終了)
0040×4EOT(転送終了)
0050×5ENQ(照会)
0060×6ACK(肯定応答)
0070×7BEL(ビープ音)
0080×8BS(バックスペース)
0090×9HT(水平タブ)
0100xaLF(改行)
0110xbVT(垂直タブ)
0120xcFF(改ページ)
0130xdCR(復帰)
0140xeSO(シフトアウト)
0150xfSI(シフトイン)
0160×10DLE(伝送制御拡張)
0170×11DC1(装置制御1)
0180×12DC2(装置制御2)
0190×13DC3(装置制御3)
0200×14DC4(装置制御4)
0210×15NAK(否定応答)
0220×16SYN(同期信号)
0230×17ETB(転送ブロック終了)
0240×18CAN(取り消し)
0250×19EM(媒体終了)
0260x1aSUB(置き換え)
0270x1bESC(エスケープ)
0280x1cFS(ファイル区切り)
0290x1dGS(グループ区切り)
0300x1eRS(レコード区切り)
0310x1fUS(ユニット区切り)
320×20
330×21!
340×22
350×23#
360×24$
370×25%
380×26&
390×27
400×28(
410×29)
420x2a*
430x2b+
440x2c,
450x2d-
460x2e.
470x2f/
480×300
490×311
500×322
510×333
520×344
530×355
540×366
550×377
560×388
570×399
580x3a:
590x3b;
600x3c<
610x3d=
620x3e>
630x3f?
640×40@
650×41A
660×42B
670×43C
680×44D
690×45E
700×46F
710×47G
720×48H
730×49I
740x4aJ
750x4bK
760x4cL
770x4dM
780x4eN
790x4fO
800×50P
810×51Q
820×52R
830×53S
840×54T
850×55U
860×56V
870×57W
880×58X
890×59Y
900x5aZ
910x5b[
920x5c\
930x5d]
940x5e^
950x5f_
960×60`
970×61a
980×62b
990×63c
1000×64d
1010×65e
1020×66f
1030×67g
1040×68h
1050×69i
1060x6aj
1070x6bk
1080x6cl
1090x6dm
1100x6en
1110x6fo
1120×70p
1130×71q
1140×72r
1150×73s
1160×74t
1170×75u
1180×76v
1190×77w
1200×78x
1210×79y
1220x7az
1230x7b{
1240x7c|
1250x7d}
1260x7e~
1270x7fDEL(削除)

制御文字用の文字列は下記サイトの文字列を使用させていただきました。


環境
Mac OS X 10.8.2
Ruby 1.9.3

Viewing all articles
Browse latest Browse all 12

Trending Articles