文字・数値をASCIIコード表で確認する
標準ASCII 0〜127をBrowser内で検索し、単一文字または基数を指定した数値から、各基数・名称・Escape表記を逆引きできます。入力値をDevelopToolsのServerへ送信・保存しません。
文字からASCIIコードを調べる結論:文字・数値・入力基数を最初に確定する
Aは65・0x41、aは97・0x61、0は48・0x30です。現行Toolは単一文字を対象とし、複数文字の一括変換は行いません。
「あ」はASCII範囲外で、現行ToolはUnicode値へ自動Fallbackしません。
代表文字を文字から引く
| 入力 | 10進 | 16進 | 2進 |
|---|---|---|---|
| A | 65 | 0x41 | 0b01000001 |
| a | 97 | 0x61 | 0b01100001 |
| 0 | 48 | 0x30 | 0b00110000 |
| ! | 33 | 0x21 | 0b00100001 |
| \ | 92 | 0x5C | 0b01011100 |
入力形式と接頭辞を明示して逆引きする
| 入力 | 自動判定 | 形式を明示した場合 |
|---|---|---|
| 65 | 10進65 → A | 10進として解析 |
| 0x41 | 16進0x41 → A | 16進では0xあり・なしを許可 |
| 41 | 10進41 → ) | 16進を選べば0x41 → A |
| 0o101 | 8進0o101 → A | 8進では0oあり・なしを許可 |
| 0b01000001 | 2進 → A | 2進では0bあり・なしを許可 |
| U+0041 | Unicode表記 → A | UnicodeではU+あり・なしを許可 |
| A | 単一文字 → 65 | 文字として解析 |
| AB / 128 / あ | 無効 | ASCII 0〜127として解釈できない |
接頭辞なしの41をHexだと推測しません。通信仕様やLogの基数が分かっている場合は、入力形式を16進・8進・2進へ切り替えてから調べます。
現行ASCIIコード表・文字コード逆引きツールの対応範囲
| 操作 | 対応内容 | 現在の境界 |
|---|---|---|
| 一覧 | 標準ASCII 0〜127の128項目 | 128〜255のコードページ表は掲載しない |
| 表示 | 文字、10進、16進、8進、2進、Unicode、略称、名称、説明、分類 | UTF-8のByte列やUnicode名検索はUnicode Toolで確認 |
| 逆引き | 単一文字、10進、0x、0o、0b、U+形式 | 複数文字の一括分解は未対応 |
| 入力形式 | 自動、文字、10進、16進、8進、2進、Unicodeを明示選択 | 自動判定の接頭辞なし数字は10進として扱う |
| 検索 | 文字、各基数、略称、英語名、日本語説明 | 正規表現検索やコードページ切替は未対応 |
| 分類 | 制御文字、印字可能、数字、英大文字、英小文字、記号 | DELはUI上で制御文字グループへ含める |
| コピー | 実文字、各基数、Unicode、言語別Escape、HTML Entity | 制御実文字は貼り付け先で不可視動作を起こし得る |
入力が「あ」や128などASCII範囲外の場合、現行Toolは「ASCII 0〜127として解釈できません」と表示します。Unicode Code Pointを自動表示するFallbackはありません。
標準ASCIIは7bitの0〜127として扱う
| 範囲 | 区分 | 例 |
|---|---|---|
| 0〜31 | 制御文字・Format Effector等 | NUL、BEL、HT、LF、CR、ESC |
| 32 | SPACE | 通常は字形を持たない空白 |
| 33〜126 | 印字可能文字 | 記号、数字、A〜Z、a〜z |
| 127 | DEL | 非印字。RFC 20では厳密にはControl Characterではないと注記 |
| 128〜255 | 標準ASCIIの範囲外 | Code Pageを指定しなければ文字を確定できない |
「Extended ASCII」は単一規格ではありません。Windows-1252、CP437、ISO-8859-1などで上位128値の割り当てが異なるため、数値だけで文字を決めません。
同じコード位置を10進・16進・8進・2進で読む
| 文字 | 10進 | 16進 | 8進 | 2進 | Unicode |
|---|---|---|---|---|---|
| A | 65 | 0x41 | 0o101 | 0b01000001 | U+0041 |
| a | 97 | 0x61 | 0o141 | 0b01100001 | U+0061 |
| 0 | 48 | 0x30 | 0o060 | 0b00110000 | U+0030 |
| SPACE | 32 | 0x20 | 0o040 | 0b00100000 | U+0020 |
これらは別の文字コードではなく、同じ整数を異なる基数で表した値です。現行Toolの表は16進を2桁、8進を3桁、2進を8桁へゼロ埋めし、コピー時は0x・0o・0bを付けます。
制御文字は可視ラベルとEscape表記で確認する
| 名称 | 10進 | 16進 | 代表Escape | 意味の目安 |
|---|---|---|---|---|
| NUL | 0 | 00 | \0 | Null。C文字列終端等で利用 |
| BEL | 7 | 07 | \a | 注意喚起 |
| BS | 8 | 08 | \b | Backspace |
| HT / TAB | 9 | 09 | \t | Horizontal Tab |
| LF | 10 | 0A | \n | Line Feed |
| FF | 12 | 0C | \f | Form Feed |
| CR | 13 | 0D | \r | Carriage Return |
| ESC | 27 | 1B | \x1B等 | Escape |
| DEL | 127 | 7F | \x7F等 | Delete・非印字 |
現行ToolはNUL、TAB、LF、CR、ESC、SPACE、DEL等を文字欄へそのまま置かず、名称ラベルで可視化します。実文字コピーとEscape表記コピーは意味が異なります。
画面上の「\n」はBackslashとnの2文字です。実際のLFは1つの制御文字で、コピー・比較・Hashでは別データです。
ASCII・Unicode Code Point・UTF-8 Byte列を分ける
| 文字 | ASCII | Unicode Code Point | UTF-8 |
|---|---|---|---|
| A | 65 / 0x41 | U+0041 | 41 |
| \ | 92 / 0x5C | U+005C | 5C |
| あ | 範囲外 | U+3042 | E3 81 82 |
| 😀 | 範囲外 | U+1F600 | F0 9F 98 80 |
Unicodeは文字へCode Pointを割り当て、UTF-8はそのCode PointをByte列へ符号化します。ASCII範囲はUnicodeのU+0000〜U+007Fと同じ配置で、UTF-8でも1Byteの値が一致しますが、ASCII外では同一視できません。
現行ASCII Toolの「Unicode」列はASCII文字に対応するU+表記です。任意Unicode文字のUTF-8・UTF-16解析や正規化はUnicodeコード表Toolで確認します。
プログラムAPIの戻り値をASCII専用と決めつけない
| 環境 | 例 | 正確な意味 |
|---|---|---|
| Python | ord("A") → 65 | 1文字のUnicode Code Point。ASCII範囲ならASCII値と一致 |
| Python | chr(65) → "A" | Unicode Code Pointから文字を返す |
| JavaScript | "A".charCodeAt(0) → 65 | 指定位置のUTF-16 Code Unit |
| JavaScript | "😀".codePointAt(0) | 先頭のUnicode Code Pointを取得 |
| C | printf("%d", 'A') | 文字定数の値。一般的ASCII互換環境では65 |
| C | '\0' と '0' | NUL 0とDigit Zero 48で別値 |
ASCII英字ではAとaの差が32ですが、この規則をUnicode全体のCase変換へ一般化しません。実装では各言語のCase Conversion APIとLocale要件を確認します。
入力値はBrowser内で処理する
現行ASCII Toolの検索・逆引き・コピー値生成はBrowser内のJavaScriptで行います。検索値や選択文字をfetch・sendBeaconで外部送信せず、LocalStorageへ保存するのはLight・DarkのTheme設定だけです。
- ASCII MasterはRepository内で生成した0〜127の固定Dataを参照します。
- 検索は文字、基数表現、略称、名称、説明をBrowser内で照合します。
- Clipboardへの書き込みは利用者がCopy操作したときだけ行います。
- 制御実文字は貼り付け先の挙動を変える可能性があるため、必要ならCodeまたはEscapeをコピーします。
値の意味に応じて関連Toolを使い分ける
- 数値だけを2進・8進・10進・16進で変換する
- ASCII外の文字・Unicode Code Pointを調べる
- LF・CRLFや文字列差分を比較する
- %20等のPercent Encodingを確認する
- 文字列・FileをBase64へ変換する
ASCII ToolはCodeとCharacterの対応を調べるものです。任意整数の基数変換、Unicode全体の検索、差分比較、URL Encoding、Base64 Encodingは別の処理として確認します。
一次資料で名称とAPIの意味を確認する
- RFC 20: ASCII format for Network Interchange
- Unicode: C0 Controls and Basic Latin
- Unicode: Latin-1 Supplement(U+00A5 YEN SIGN)
- Python: Built-in Functions ord()
- Python: Built-in Functions chr()
- ECMAScript: String.prototype.charCodeAt()
- ECMAScript: String.prototype.codePointAt()
- Microsoft Learn: doNotLeaveBackslashAlone
ASCIIの範囲・名称はRFC 20とUnicode Basic Latin、Unicode文字はUnicode公式、PythonとJavaScript APIは各公式仕様を優先します。記事中の「現行Tool」はRepositoryで確認した実装範囲です。
まとめ
- 1文字ずつ逆引きする
- A・a・0・記号で値を確認する
- ASCII外文字へ適当なByte値を付けない
表示された文字だけでなく、範囲、入力基数、Code Point、Byte列、Escape notationを分けて確認すると、ASCII逆引きと文字コード問題を混同せずに切り分けられます。
具体例:文字からASCIIコードを調べる方法を確認する
元の文字列やLogを変更せず、調べたい1文字または数値を切り出します。基数が不明なら、0x・0b等の接頭辞と仕様書の表記を先に確認します。
ASCII Toolで対応する文字・名称・各基数を確認し、ASCII外ならUnicodeまたは元Encodingの調査へ切り替えます。
- 調べたい値と、その値が文字・10進・16進・8進・2進のどれかを確認します。
- 文字またはコード欄へ1件だけ入力し、入力形式を自動判定または明示指定します。
- 逆引き結果の文字、Decimal、Hex、Octal、Binary、Unicode、名称を照合します。
- 制御文字では可視ラベルとEscape表記を確認し、実文字のCopyは必要な場合だけ行います。
- 0〜127外ならCode PageまたはUnicode Toolで確認し、ASCII値として確定しません。
値を正しく読むには「何進数か」「標準ASCIIか」「Code PointかByte列か」の3点を残してください。
よくある質問
- ASCIIは0〜255ではありませんか?
- 標準ASCIIは7bitの0〜127です。128〜255はWindows-1252やCP437等のCode Pageで割り当てが異なるため、単一のASCII表として確定できません。
- 日本語やEmojiもASCIIコードへ変換できますか?
- できません。ASCII範囲外です。Unicode Code PointとUTF-8等のEncodingを分け、Unicodeコード表Toolで確認してください。
- 検索値やコピー内容は外部へ送信・保存されますか?
- 現行Toolの検索・逆引き・コピー値生成はBrowser内で行い、入力値をfetch・sendBeaconで送信せず、検索履歴もLocalStorageへ保存しません。