ASCII変換ツールの使い方
最初に変換方向を選択します。「テキストからASCII」では、入力した文字列を処理し、各文字のコード値を10進数で空白区切りにして出力します。ASCII文字(0~127)なら標準ASCIIの値になりますが、日本語などの非ASCII文字はUTF-8にエンコードされず、JavaScriptのUTF-16コード単位の値として扱われます。
「ASCIIからテキスト」では、72 101 108 108 111 のようなコードを入力します。数字は空白、カンマ、セミコロン、タブ、改行などの空白文字で区切れます。各値は整数として解釈でき、0~255の範囲内でなければなりません。小数、範囲外の値、解釈できない入力はエラーになります。
このページの基本入力は10進数です。16進数、2進数、U+XXXX 形式のUnicodeコードポイント、UTF-8バイト列を専用の形式として検証・表示する機能はありません。実装は数値をJavaScriptのNumberで解釈するため、0x41 や 0b01000001 のような接頭辞付き表記が数値として通る場合はありますが、ASCIIの16進数変換・2進数変換・UTF-8デコードを行うものではありません。
入力した改行も文字として処理されます。たとえばLF(改行)は10、CR(復帰)は13としてコード化され、テキストからASCIIへの結果では他の値と同じように空白で区切られます。出力の長さ表示はJavaScriptの文字列長(UTF-16コード単位)に基づきます。
公式と原理 - ASCII変換ツール
ASCIIは文字を数値に対応付ける7ビットの文字コードです。標準ASCIIの範囲は0~127で、0~31と127は制御文字、32~126は印字可能文字です。128~255は標準ASCIIの範囲外ですが、このツールのASCIIからテキストへの変換では、String.fromCharCode によって対応するUTF-16コード単位(U+0080~U+00FF)として生成されます。これは特定の文字コード規格を選択した拡張ASCIIのデコードではありません。
code = text.charCodeAt(index)
character = String.fromCharCode(code)
charCodeAt が返すのは0~65535のUTF-16コード単位であり、Unicodeコードポイントそのものとは区別する必要があります。BMP(基本多言語面)外の文字、たとえば絵文字はサロゲートペアで表されます。この実装では Array.from で取り出した文字に対して charCodeAt(0) を使うため、BMP外の文字は完全なUnicodeコードポイントにもUTF-8の複数バイト列にも変換されず、先頭のサロゲート値だけが出力されます。
0~31や127などの制御文字は、変換結果に含まれていても画面上で見えない、または改行・タブなどの動作として扱われることがあります。不正な入力を自動的に置換文字(U+FFFD)へ変える処理はなく、入力エラーとして扱われます。
ASCII変換ツールの利用例
プロトコルのペイロードやシリアル通信ログの確認、ASCIIコード表の10進値の整理、制御文字の確認、レガシーなテキストデータの調査、プログラミング教材の例題作成に利用できます。資料やネットワークログに、読みやすい文字ではなく10進のバイト値が記録されている場合にも便利です。Unicodeコードポイント、UTF-8、16進数、2進数を変換したい場合は、それぞれの形式に対応した専用ツールを使用してください。