使い方
- テキストを10進数に変換するには「エンコード」を、数値をテキストに戻すには「デコード」を選択します。
- テキストや数値を入力または貼り付けるか、ファイルを開きます。結果は入力に合わせてリアルタイムに更新されます。
- 数値の「区切り文字」を「スペース」「カンマ」「改行」から選びます。
- 数値をコピーするか、ファイルとしてダウンロードします。
10進数のバイト値と ASCII コード
コンピューターでは、すべての文字が 1 バイト以上で保存されます。そして 1 バイトは 0~255 の数値にすぎません。このツールは、その数値を通常の10進数で書き出します。英語のテキストでは、おなじみの ASCII コードになります。大文字は 65~90、小文字は 97~122、数字の 0~9 は 48~57、スペースは 32 です。32 未満は制御文字で、たとえば改行(LF)は 10、復帰(CR)は 13 です。
結果は、Python の ord() や JavaScript で Uint8Array を読み取って得られる値と同じです。文字列に含まれる目に見えない文字、改行コード、バイトオーダーマーク(BOM)を見つけるのにも便利です。
1 つの大きな数ではなく、1 バイトごとに 1 つの数値
変換は 1 バイトずつ行われます。2 文字の単語は 1 つの整数ではなく、2 つの数値になります。ASCII のテキストに 127 を超える値が現れることはありません。UTF-8 では、こうした値は 2~4 バイトの組になって 1 文字を表すため、アクセント付きの文字や漢字 1 文字から複数の数値が得られます。漢字やかなを 1 文字 2 つの数値で表すには、「文字コード」で Shift_JIS を選択してください。西ヨーロッパの言語のテキストを 1 文字 1 つの値で表すには、各バイト値がその文字の Unicode コードポイントと一致する ISO-8859-1、または Windows-1252 を選択してください。
255 を16進数にするなど、1 つの数値の基数を変換したい場合は、基数変換ツールを使用してください。同じバイト列を別の表記で確認するには、16進数や2進数のツールをお試しください。
コードで10進数のバイト値を扱う
# Python
list('Hi'.encode()) # [72, 105]
bytes([72, 105]).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')] // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105])) // 'Hi'
仕様
| 使用文字 | 0-9 |
|---|---|
| 出力サイズ | 1 バイトあたり 1~3 桁と区切り文字 |
| パディング | なし |
| 規格 | 10進数のバイト値 |
| 大文字と小文字の区別 | なし |
エンコード例
| 入力 (UTF-8) | 出力 |
|---|---|
Hello, World! | 72 101 108 108 111 44 32 87 111 114 108 100 33 |
Base64.is | 66 97 115 101 54 52 46 105 115 |
你好 | 228 189 160 229 165 189 |
よくある質問
A の10進数の ASCII コードはいくつですか?
大文字の A は 65、小文字の a は 97 で、ASCII でも UTF-8 でも同じです。以降の文字は 1 ずつ増えるため、Z は 90、z は 122 です。
区切り文字のない10進数をデコードできますか?
いいえ。72105 のような数字の並びは複数の方法で区切れてしまうため、デコーダーでは数値をスペース、カンマ、セミコロン、改行で区切る必要があります。先頭のゼロは使用できます。
255 より大きい数値がエラーになるのはなぜですか?
1 バイトが表せるのは 0~255 の値です。ユーロ記号の Unicode コードポイント 8364 のような大きな数値は、バイト値ではありません。文字そのものを入力してエンコードすると、UTF-8 などでのバイト値を確認できます。
1 文字が複数の数値になるのはなぜですか?
UTF-8 では、ASCII 以外の文字は 2~4 バイトで保存され、各バイトがそれぞれ 1 つの数値になります。西ヨーロッパの文字を 1 文字 1 つの数値で表したい場合は、Windows-1252 などの 1 バイト文字コードを選択してください。