![[Ruby] ASCIIコード表を出力する](http://www.happytrap.jp/blogs/wp-content/uploads/2012/11/default_ruby.jpg)
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進数 | 文字 |
000 | 0×0 | NUL(ヌル文字) |
001 | 0×1 | SOH(ヘッダ開始) |
002 | 0×2 | STX(テキスト開始) |
003 | 0×3 | ETX(テキスト終了) |
004 | 0×4 | EOT(転送終了) |
005 | 0×5 | ENQ(照会) |
006 | 0×6 | ACK(肯定応答) |
007 | 0×7 | BEL(ビープ音) |
008 | 0×8 | BS(バックスペース) |
009 | 0×9 | HT(水平タブ) |
010 | 0xa | LF(改行) |
011 | 0xb | VT(垂直タブ) |
012 | 0xc | FF(改ページ) |
013 | 0xd | CR(復帰) |
014 | 0xe | SO(シフトアウト) |
015 | 0xf | SI(シフトイン) |
016 | 0×10 | DLE(伝送制御拡張) |
017 | 0×11 | DC1(装置制御1) |
018 | 0×12 | DC2(装置制御2) |
019 | 0×13 | DC3(装置制御3) |
020 | 0×14 | DC4(装置制御4) |
021 | 0×15 | NAK(否定応答) |
022 | 0×16 | SYN(同期信号) |
023 | 0×17 | ETB(転送ブロック終了) |
024 | 0×18 | CAN(取り消し) |
025 | 0×19 | EM(媒体終了) |
026 | 0x1a | SUB(置き換え) |
027 | 0x1b | ESC(エスケープ) |
028 | 0x1c | FS(ファイル区切り) |
029 | 0x1d | GS(グループ区切り) |
030 | 0x1e | RS(レコード区切り) |
031 | 0x1f | US(ユニット区切り) |
32 | 0×20 | |
33 | 0×21 | ! |
34 | 0×22 | “ |
35 | 0×23 | # |
36 | 0×24 | $ |
37 | 0×25 | % |
38 | 0×26 | & |
39 | 0×27 | ‘ |
40 | 0×28 | ( |
41 | 0×29 | ) |
42 | 0x2a | * |
43 | 0x2b | + |
44 | 0x2c | , |
45 | 0x2d | - |
46 | 0x2e | . |
47 | 0x2f | / |
48 | 0×30 | 0 |
49 | 0×31 | 1 |
50 | 0×32 | 2 |
51 | 0×33 | 3 |
52 | 0×34 | 4 |
53 | 0×35 | 5 |
54 | 0×36 | 6 |
55 | 0×37 | 7 |
56 | 0×38 | 8 |
57 | 0×39 | 9 |
58 | 0x3a | : |
59 | 0x3b | ; |
60 | 0x3c | < |
61 | 0x3d | = |
62 | 0x3e | > |
63 | 0x3f | ? |
64 | 0×40 | @ |
65 | 0×41 | A |
66 | 0×42 | B |
67 | 0×43 | C |
68 | 0×44 | D |
69 | 0×45 | E |
70 | 0×46 | F |
71 | 0×47 | G |
72 | 0×48 | H |
73 | 0×49 | I |
74 | 0x4a | J |
75 | 0x4b | K |
76 | 0x4c | L |
77 | 0x4d | M |
78 | 0x4e | N |
79 | 0x4f | O |
80 | 0×50 | P |
81 | 0×51 | Q |
82 | 0×52 | R |
83 | 0×53 | S |
84 | 0×54 | T |
85 | 0×55 | U |
86 | 0×56 | V |
87 | 0×57 | W |
88 | 0×58 | X |
89 | 0×59 | Y |
90 | 0x5a | Z |
91 | 0x5b | [ |
92 | 0x5c | \ |
93 | 0x5d | ] |
94 | 0x5e | ^ |
95 | 0x5f | _ |
96 | 0×60 | ` |
97 | 0×61 | a |
98 | 0×62 | b |
99 | 0×63 | c |
100 | 0×64 | d |
101 | 0×65 | e |
102 | 0×66 | f |
103 | 0×67 | g |
104 | 0×68 | h |
105 | 0×69 | i |
106 | 0x6a | j |
107 | 0x6b | k |
108 | 0x6c | l |
109 | 0x6d | m |
110 | 0x6e | n |
111 | 0x6f | o |
112 | 0×70 | p |
113 | 0×71 | q |
114 | 0×72 | r |
115 | 0×73 | s |
116 | 0×74 | t |
117 | 0×75 | u |
118 | 0×76 | v |
119 | 0×77 | w |
120 | 0×78 | x |
121 | 0×79 | y |
122 | 0x7a | z |
123 | 0x7b | { |
124 | 0x7c | | |
125 | 0x7d | } |
126 | 0x7e | ~ |
127 | 0x7f | DEL(削除) |
制御文字用の文字列は下記サイトの文字列を使用させていただきました。
環境
Mac OS X 10.8.2
Ruby 1.9.3
Ruby 1.9.3