ToolActToolAct

ASCIIコード表

制御文字、印刷可能文字、拡張文字を含む完全なASCII文字コード参照表

合計 256 文字
10進数16進数文字説明
00x00-ヌル文字
10x01-ヘッダ開始
20x02-テキスト開始
30x03-テキスト終了
40x04-転送終了
50x05-照会
60x06-肯定応答
70x07-ベル
80x08-バックスペース
90x09-水平タブ
100x0A-改行
110x0B-垂直タブ
120x0C-フォームフィード
130x0D-キャリッジリターン
140x0E-シフトアウト
150x0F-シフトイン
160x10-データリンクエスケープ
170x11-デバイス制御1
180x12-デバイス制御2
190x13-デバイス制御3
200x14-デバイス制御4
210x15-否定応答
220x16-同期アイドル
230x17-転送ブロック終了
240x18-キャンセル
250x19-メディア終了
260x1A-置換
270x1B-エスケープ
280x1C-ファイル区切り
290x1D-グループ区切り
300x1E-レコード区切り
310x1F-ユニット区切り
1270x7F-削除
320x20スペース
330x21!感嘆符
340x22"二重引用符
350x23#番号記号
360x24$ドル記号
370x25%パーセント記号
380x26&アンパサンド
390x27'単一引用符
400x28(左括弧
410x29)右括弧
420x2A*アスタリスク
430x2B+プラス記号
440x2C,カンマ
450x2D-ハイフン
460x2E.ピリオド
470x2F/スラッシュ
480x300数字 0
490x311数字 1
500x322数字 2
510x333数字 3
520x344数字 4
530x355数字 5
540x366数字 6
550x377数字 7
560x388数字 8
570x399数字 9
580x3A:コロン
590x3B;セミコロン
600x3C<小なり記号
610x3D=等号
620x3E>大なり記号
630x3F?疑問符
640x40@アットマーク
650x41A大文字 A
660x42B大文字 B
670x43C大文字 C
680x44D大文字 D
690x45E大文字 E
700x46F大文字 F
710x47G大文字 G
720x48H大文字 H
730x49I大文字 I
740x4AJ大文字 J
750x4BK大文字 K
760x4CL大文字 L
770x4DM大文字 M
780x4EN大文字 N
790x4FO大文字 O
800x50P大文字 P
810x51Q大文字 Q
820x52R大文字 R
830x53S大文字 S
840x54T大文字 T
850x55U大文字 U
860x56V大文字 V
870x57W大文字 W
880x58X大文字 X
890x59Y大文字 Y
900x5AZ大文字 Z
910x5B[左角括弧
920x5C\バックスラッシュ
930x5D]右角括弧
940x5E^キャレット
950x5F_アンダースコア
960x60`グレイヴアクセント
970x61a小文字 a
980x62b小文字 b
990x63c小文字 c
1000x64d小文字 d
1010x65e小文字 e
1020x66f小文字 f
1030x67g小文字 g
1040x68h小文字 h
1050x69i小文字 i
1060x6Aj小文字 j
1070x6Bk小文字 k
1080x6Cl小文字 l
1090x6Dm小文字 m
1100x6En小文字 n
1110x6Fo小文字 o
1120x70p小文字 p
1130x71q小文字 q
1140x72r小文字 r
1150x73s小文字 s
1160x74t小文字 t
1170x75u小文字 u
1180x76v小文字 v
1190x77w小文字 w
1200x78x小文字 x
1210x79y小文字 y
1220x7Az小文字 z
1230x7B{左中括弧
1240x7C|垂直バー
1250x7D}右中括弧
1260x7E~チルダ
1280x80€
1290x81
1300x82‚
1310x83ƒ
1320x84„
1330x85…
1340x86†
1350x87‡
1360x88ˆ
1370x89‰
1380x8AŠ
1390x8B‹
1400x8CŒ
1410x8D
1420x8EŽ
1430x8F
1440x90
1450x91‘
1460x92’
1470x93“
1480x94”
1490x95•
1500x96–
1510x97—
1520x98˜
1530x99™
1540x9Aš
1550x9B›
1560x9Cœ
1570x9D
1580x9Ež
1590x9FŸ
1600xA0 
1610xA1¡
1620xA2¢
1630xA3£
1640xA4¤
1650xA5¥
1660xA6¦
1670xA7§
1680xA8¨
1690xA9©
1700xAAª
1710xAB«
1720xAC¬
1730xAD­
1740xAE®
1750xAF¯
1760xB0°
1770xB1±
1780xB2²
1790xB3³
1800xB4´
1810xB5µ
1820xB6
1830xB7·
1840xB8¸
1850xB9¹
1860xBAº
1870xBB»
1880xBC¼
1890xBD½
1900xBE¾
1910xBF¿
1920xC0À
1930xC1Á
1940xC2Â
1950xC3Ã
1960xC4Ä
1970xC5Å
1980xC6Æ
1990xC7Ç
2000xC8È
2010xC9É
2020xCAÊ
2030xCBË
2040xCCÌ
2050xCDÍ
2060xCEÎ
2070xCFÏ
2080xD0Ð
2090xD1Ñ
2100xD2Ò
2110xD3Ó
2120xD4Ô
2130xD5Õ
2140xD6Ö
2150xD7×
2160xD8Ø
2170xD9Ù
2180xDAÚ
2190xDBÛ
2200xDCÜ
2210xDDÝ
2220xDEÞ
2230xDFß
2240xE0à
2250xE1á
2260xE2â
2270xE3ã
2280xE4ä
2290xE5å
2300xE6æ
2310xE7ç
2320xE8è
2330xE9é
2340xEAê
2350xEBë
2360xECì
2370xEDí
2380xEEî
2390xEFï
2400xF0ð
2410xF1ñ
2420xF2ò
2430xF3ó
2440xF4ô
2450xF5õ
2460xF6ö
2470xF7÷
2480xF8ø
2490xF9ù
2500xFAú
2510xFBû
2520xFCü
2530xFDý
2540xFEþ
2550xFFÿ

ASCIIとは?

ASCII(情報交換用米国標準コード)は、ラテンアルファベットに基づく文字エンコーディング標準規格です。1960年代にテレグラフ通信用に開発され、コンピュータ分野で最も基本的な文字エンコーディングシステムとなりました。標準ASCIIは128文字(0-127)を含み、33個の制御文字と95個の印刷可能文字があります。拡張ASCII(128-255)は記号や国際文字のためにさらに128文字を追加しますが、エンコーディングは地域によって異なります。

使い方

基本的な使い方

  1. 値や文字をクリックしてコピー
  2. 検索ボックスで特定の文字を素早く検索
  3. カテゴリボタンで文字種別を絞り込み
  4. 文字にカーソルを合わせると詳細説明を表示

エンコーディングの注意点

  • ASCIIは0〜127の文字範囲のみをカバーします。アクセント付き文字、絵文字、ほとんどの非英語テキストにはUTF-8などのUnicodeエンコーディングが必要です。
  • 制御文字は画面に表示されない場合がありますが、ファイル、ターミナル、プロトコル、コピー&ペーストのテキストに影響を与えることがあります。

利用シーン

表示・非表示問わず正確なコードを調べる文字、10進数値、16進数値、説明文で検索し、スペース32、LF 0x0A、CR 0x0D、ESC 0x1B、大文字Aの65などをデバッグ中に確認できます。検索はページ内に埋め込まれた128件のASCIIデータに対して実行されるため、内部コードポイントやログの断片、プロトコル定数をアップロードなしで調べられます。
制御文字と印刷可能文字を分けて確認するログ、シリアルメッセージ、CSVファイル、ターミナル出力に画面上には見えないが解析動作に影響する文字が含まれている場合、制御文字・印刷可能文字・拡張文字のフィルタを使って切り分けます。文字データが収集されないため、研修生への教育、リファレンスカードの作成、パーサーの期待値監査など、バックエンドに痕跡を残さずに利用できます。
リファレンス値をコードやドキュメントにコピーするパーサーのテスト、プロトコルメモ、キーボードリファレンス、エスケープシーケンスの説明、レガシー連携のドキュメントを作成する際に、テーブル行の値をクリックしてコピーします。128〜255の拡張値については、対象システムがどのコードページでデコードするかを別途確認する必要があります。
マニュアルなしでエスケープシーケンスを解読する\x1B[31m、\r\n、\tなどのシーケンスを検索ボックスに貼り付ければ、10進数・16進数・2進数の値と表示可能なレンダリングを確認できます。ログやターミナル出力で文字化けが発生した際、元のバイトが制御文字なのかコードページ由来のアーティファクトなのかを確認するのに便利です。ルックアップはページ内のテーブルに対してのみ行われるため、本番システムのターミナルキャプチャがブラウザ外に出ることはありません。
パーサー向けの印刷可能文字リストを確認する印刷可能文字でフィルタし、厳密なパーサーの許可リストを定義する前にASCIIの95文字を確認します。プログラミング言語、シェル、ターミナル出力、CSV方言の間でスペース、句読点、引用符の扱いが異なることが多く、事前に把握しておくと想定のズレを防げます。このリストはページ自身の静的データセットであるため、ネットワークの可用性や外部ドキュメントに依存しません。

仕組み

ASCII(American Standard Code for Information Interchange、ANSI X3.4-1968、ISO/IEC 646:1991 IRV)は7ビット文字エンコーディングで、コード0〜127の128文字を割り当てる。下位32コード(0x00-0x1F)と0x7Fはテレタイプ端末から継承された制御文字である:NUL(0x00)、BEL(0x07、アラートビープ)、LF(0x0A、改行)、CR(0x0D、キャリッジリターン)、ESC(0x1B)、DEL(0x7F)など。コード0x20-0x7Eは印刷可能文字で、スペース、0x30-0x39の数字0-9、0x41-0x5Aの大文字A-Z、0x61-0x7Aの小文字a-z、およびその間の句読点を含む。 エンコーディングは意図的に規則的な構造を持つ。数字はクラスタ化されている:'0' = 0x30、'1' = 0x31、...、'9' = 0x39。数字文字を数値に変換するには`code - 0x30`とする。文字も同様にクラスタ化されている:'A' = 0x41、'B' = 0x42、...、'Z' = 0x5A、'a' = 0x61、...、'z' = 0x7A。同じ文字の大文字と小文字の差は0x20(32)で、これはビット5の位置に1ビットがセットされていることと正確に一致する(1 << 5 = 32)。そのため大文字小文字変換は0x20との単一のXORまたはOR/ANDで実現できる:`code ^ 0x20`で大文字小文字を反転、`code | 0x20`で小文字化、`code & 0x5F`(= `code & ~0x20`)で大文字化。このビットトリックは最も高速な大文字小文字変換であり、ASCII専用文字列のstrlen/strcmp実装に登場する。 ASCIIは7ビットテレタイプ端末とその前身である5レベルBaudot符号を前提に設計されたため、8ビットバイトより古い。8ビットの「拡張ASCII」範囲(0x80-0xFF)は標準化されたことがなく、多くのコードページ(ISO 8859-1 Latin-1、Windows-1252、MacRoman、KOI8-R、IBM437)が上位半分を争奪した理由がここにある。ISO 8859-1(Latin-1)が最も標準に近かったが、ユーロ記号はISO 8859-15まで欠いていた。C1制御範囲(0x80-0x9F)は予約されるはずだった(ISO 6429)が、Windows-1252はその一部を印刷可能文字に再利用した — UTF-8がついに解決するまで長く続く相互運用性の悩みの種であった。 UTF-8(RFC 3629、2003年)は1992年にRob PikeとKen Thompsonが設計した後方互換スーパーセットである:128のASCIIコードはそれ自体が1バイトの単一バイトとして符号化される(0x00-0x7F)ため、すべてのASCIIテキストは有効なUTF-8テキストでもある。0x7Fを超えるコードは2、3、4バイトの特定ビットパターン(110xxxxx 10xxxxxx、1110xxxx 10xxxxxx 10xxxxxx、11110xxx 10xxxxxx 10xxxxxx 10xxxxxx)を使用し、デコーダはエラー後にバイト単位で再同期できる。一方、EBCDICはIBMのメインフレーム用8ビットエンコーディング(8ビットEBCDICはASCIIのような7ビットではなく8ビットだった)で、文字を非連続コードポイントに割り当てている('A' = 0xC1、'I' = 0xC9、'J' = 0xD1、...、ビットトリックや文字列アルゴリズムを妨げるギャップがある)。 ISO 646の各国語バリアントは、少数のASCII文字をその国の固有文字に置き換えた。例えば英国バリアントは0x23(米国の'#')をポンド記号'£'に、ドイツバリアントは句読点の一部をウムラウトに置き換えた。これがCのロケール設定やPOSIXのcharmapファイルが歴史的に重要だった理由 — IRV(国際参照版)と各国語バリアント間のマッピングを行っていた。この混乱からの脱出はUnicode/UTF-8であり、あらゆる新規プロジェクトにとって7ビットと8ビットの議論を時代遅れにした。

  • ASCII(ANSI X3.4-1968、ISO/IEC 646 IRV)は1文字あたり7ビット、128コードポイントを使用:33の制御文字(0x00-0x1F、0x7F)と95の印刷可能文字(0x20-0x7E)。
  • 制御文字(0x00-0x1F、0x7F)はテレタイプから継承:NUL、BEL(0x07、アラートビープ)、LF(0x0A)、CR(0x0D)、ESC(0x1B)、DEL(0x7F)。現代のテキストでもLFとCRは使用されるが、その他はほぼ歴史的な存在。
  • 印刷可能文字の配置:スペース(0x20)、数字'0'-'9'(0x30-0x39)、大文字'A'-'Z'(0x41-0x5A)、小文字'a'-'z'(0x61-0x7A)、その間に句読点。'5'を5に変換するには`code - 0x30`、大文字から小文字への変換は`code | 0x20`。
  • 大文字小文字変換は1ビット演算:XOR 0x20で反転、OR 0x20で小文字化、AND 0x5F(= `code & ~0x20`)で大文字化。これはあらゆる言語で最速の大文字小文字変換であり、ASCII専用バッファでのstrlen/strcmpの動作原理。
  • 8ビット拡張(0x80-0xFF)は標準化されなかったため、Windows-1252、ISO-8859-1、MacRoman、KOI8-R、IBM437が上位半分をそれぞれ異なる方法で定義した。Windows-1252がWebで勝利し、ほとんどのレガシーコードが使う事実上の「拡張ASCII」となっている。
  • UTF-8(RFC 3629、Pike & Thompson 1992)はASCIIの厳密なスーパーセット:128のASCIIコードポイントは1バイトでそのまま符号化され、U+007Fを超えるコードポイントは110xxxxx 10xxxxxxの継続バイトを使用する2〜4バイトで符号化され、デコーダはエラー後にバイト単位で再同期できる。
  • EBCDIC(IBM、1960年代のメインフレーム)はIBM z/OSで使われるASCIIの8ビット代替。文字位置が連続していない('A'=0xC1、'I'=0xC9、'J'=0xD1)ため、ASCIIの大文字小文字変換トリックは機能せず、tolower()などのビットシフトアルゴリズムはテーブル参照が必要。
  • ISO 646の各国語バリアント(英国、ドイツ、スウェーデンなど)は少数のASCII文字をその国の固有文字に置き換えた:英国バリアントは0x23の'#'を'£'に、ドイツバリアントは句読点をウムラウトに交換した。Unicode以前のローカライゼーションがこれで全てである。

使用例

文字のクイック検索

文字: 'A'
  10進:    65
  16進:    0x41
  2進:     01000001
  8進:     0101
  C エスケープ: \x41  (C / C++ / Python / JavaScript の '\x41')

大文字と小文字の差は 0x20 (10進で 32):
  'a' = 0x61 (97)    =  'A' (0x41) + 0x20
  'A' = 0x41 (65)    =  'a' (0x61) - 0x20
ビット 5 (マスク 0x20) を反転すると大文字小文字が切り替わります。

  ch ^ 0x20   は A <-> a を切り替え (A-Z, a-z に有効、それ以外は変化しない)

改行コード問題のデバッグ

LF  (0x0A, 10進 10)  - Unix, Linux, 現代の macOS  '\n'
CR  (0x0D, 10進 13)  - 旧 Mac OS (OS X 以前)、一部のネットワークプロトコル  '\r'
CRLF (0x0D 0x0A, '13 10')  - Windows, HTTP, SMTP, FTP  '\r\n'

Windows で保存した 'hi\r\n' ファイルの 16 進ダンプ:
  0000:  68 69 0d 0a         hi..

Linux で保存した同じ内容 ('hi\n') の 16 進ダンプ:
  0000:  68 69 0a            hi.

行数への影響:
  $ wc -l windows.txt unix.txt
       1 windows.txt    (改行 1 つ、0x0D 0x0A)
       1 unix.txt       (改行 1 つ、0x0A)
  バイト数は異なり (4 vs 3)、dos2unix のようなツールは
  0x0D 0x0A の組を検出して 0x0D を取り除きます。

URL エンコーディングのリファレンス

RFC 3986 の unreserved + reserved 集合 (それ以外はパーセントエンコードが必要):
  unreserved  A-Z a-z 0-9 - _ . ~
  reserved    ! * ' ( ) ; : @ & = + $ , / ? # [ ]
  これら以外は %HH の形式でエンコード (HH は 2 桁の大文字 16 進)

よく使う文字:
  space    0x20  ->  %20   (application/x-www-form-urlencoded 内では '+')
  !        0x21  ->  %21
  "        0x22  ->  %22
  #        0x23  ->  %23
  $        0x24  ->  %24
  %        0x25  ->  %25
  &        0x26  ->  %26   (クエリ文字列の区切り - 値の中では必ずエンコード)
  '        0x27  ->  %27
  (        0x28  ->  %28
  )        0x29  ->  %29
  +        0x2B  ->  %2B   (フォーム本体では %20、'+' はスペースを意味)
  ,        0x2C  ->  %2C
  /        0x2F  ->  %2F   (パスでは予約、クエリでは安全な場合が多い)
  :        0x3A  ->  %3A
  ;        0x3B  ->  %3B
  =        0x3D  ->  %3D
  ?        0x3F  ->  %3F
  @        0x40  ->  %40

例:       https://example.com/path with space and ampersand
エンコード後: https://example.com/path%20with%20space%20%26%20ampersand

制御文字のエスケープと正規表現メタ文字

C / Python / JavaScript 文字列での代表的な制御コードとそのエスケープ形式:
  NUL  0x00  '\0'         (C の文字列終端)
  BEL  0x07  '\a'         (端末ベル)
  BS   0x08  '\b'         (バックスペース)
  TAB  0x09  '\t'         (水平タブ)
  LF   0x0A  '\n'         (改行)
  VT   0x0B  '\v'         (垂直タブ)
  FF   0x0C  '\f'         (フォームフィード)
  CR   0x0D  '\r'         (キャリッジリターン)
  ESC  0x1B  '\x1b' / '\e' (POSIX)  (エスケープシーケンスの開始)
  DEL  0x7F  '\x7f'       (削除)

\ でエスケープが必要な正規表現メタ文字:
  ^ $ . | ? * + ( ) [ ] { } \

上記の表を再現する JavaScript スニペット:
  const ctrl = { 0:'NUL', 9:'TAB', 10:'LF', 13:'CR', 27:'ESC', 32:'SP', 127:'DEL' };
  for (const [code, name] of Object.entries(ctrl)) {
    console.log(`${code.toString().padStart(3)}  0x${(+code).toString(16).padStart(2,'0')}  ${name}`);
  }
  // ->  ' 0x20 SP'   0a LF   0d CR   など

よくある質問

ASCIIテーブルの大きさはどれくらいですか?

標準ASCIIには128個のコードポイント(0〜127)があり、33個の制御文字(0〜31および127のDEL)と95個の印字可能文字(スペースから「~」まで)で構成されます。「拡張ASCII」とは、Windows-1252やISO-8859-1のような256コードポイントの単一バイトエンコーディングの総称ですが、厳密にはASCIIではありません。

なぜ32番が可視グリフではなく「Space」と表示されるのですか?

コードポイント32(0x20)は文字どおりのスペース文字です。印字可能ですが見えません。本ページではコピーできるよう「SP」または「Space」というラベルを表示しますが、行をクリックすると実際のスペース文字がクリップボードにコピーされます。

最初の32個のASCIIコードは何のためにあるのですか?

これらはテレタイプ時代の制御文字で、TAB(9)、LF(10)、CR(13)、ESC(27)などがあります。現代のソフトウェアではTAB、LF、CR、NUL(0)が今でも使われていますが、その他(BEL、ACK、ENQなど)はほぼ歴史的な遺産であり、シリアルプロトコルやバイナリファイルのヘッダーで稀に見られる程度です。

ASCIIとUTF-8は同じものですか?

ASCIIは英語向けの7ビットエンコーディングです。UTF-8は可変長エンコーディングで、最初の128コードポイントについてはASCIIとバイト互換です。そのため、純粋なASCIIファイルは有効なUTF-8でもあります。UTF-8は2〜4バイトの拡張シーケンスでUnicode全体をカバーします。

1つの文字を10進・16進・2進で相互変換するにはどうすればよいですか?

行を選択すると4種類の表記がすべて表示されます。例えば「A」は10進65、16進0x41、8進0101、2進01000001です。「Char」列は文字そのもの、「Description」列は公式のUnicode名を示します。

なぜこのテーブルにé、ñ、中などが載っていないのですか?

これらの文字はASCIIの範囲外だからです。éとñはLatin-1(コードポイント233と241)にあり、中はCJK統合漢字(U+4E2D)にあります。これらにはUnicode検索ツールを使ってください。ASCIIは127までしかありません。

ASCIIコードしか分からない場合、その文字を入力するにはどうすればよいですか?

Windowsでは、Altキーを押しながらテンキーで10進コードを入力します(A なら Alt+65)。macOSやLinuxでは、本テーブルから貼り付けるか、入力メソッドの16進コード機能を使ってください。コード上では、\xNN(16進)、\NNN(8進)、Pythonでは chr(N)、JavaScriptでは String.fromCharCode(N) を使用します。

関連ツール

Unicode エンコード変換ツール

オンラインUnicodeエンコード・デコードツール。\uXXXX、&#xXXXX;など複数フォーマットの変換をサポート。国際化テキストを素早く処理し、エンコーディング問題を解決。

Base64 エンコードデコードツール

オンラインBase64エンコード・デコードツール。UTF-8テキスト、日本語、画像変換をサポート。リアルタイムエンコード・デコード、ソフトウェアインストール不要、データはローカル処理でプライバシー保護。

MIMEタイプ参照

オンラインMIMEタイプ検索ツール。ファイル拡張子のMIMEタイプを素早く検索。検索とカテゴリフィルタ対応、ドキュメント、画像、音声、動画などを網羅。

HTTPステータスコード一覧

オンラインHTTPステータスコード一覧。全標準コードの意味を説明。検索とカテゴリフィルタ対応、1xxから5xxまでの意味を素早く検索。

Git コマンドリファレンス

オンラインGitコマンド早見表、最も使用されるGitコマンドを収録。カテゴリ別整理、検索フィルタ対応、Gitコマンドを素早く検索。

大文字小文字変換ツール

オンライン大文字・小文字変換ツール。キャメルケース、スネークケース、ケバブケース、定数など複数命名フォーマットの相互変換。プログラマー必須、ワンクリックで変数名フォーマットを変換。