文字コード変換・判定ツールの概要・基礎知識
文字コード変換・判定ツールは、入力されたテキストを構成する一文字一文字について、Unicodeコードポイント・UTF-8バイト列・URLエンコード・Unicodeエスケープ・HTML数値参照・16進ダンプを一括表示するツールです。文字化けの原因調査、APIに送信する正しいエンコード形式の確認、JavaScriptやJSONに埋め込む安全な記法への変換、サロゲートペア絵文字のコード判定など、文字を扱う開発作業で「あれってどう書けばいいんだっけ」を即座に解決できます。Web開発・API設計・国際化対応・セキュリティ調査など、コードを書く現場で常備しておきたい1本です。
主な機能と用途
| 機能 | 出力例 | 用途 |
|---|---|---|
| 文字コード一覧 | 各文字のUnicode・UTF-8バイト列・文字名・カテゴリ | 文字化け調査・サロゲートペア解析 |
| URLエンコード | %E3%83%9D%E3%83%81 のようなパーセントエンコード | URLパラメータ生成・APIリクエスト |
| Unicodeエスケープ | ポチット のような\uXXXX形式 | JavaScript文字列・JSON値・正規表現 |
| HTML数値参照 | ポチ のような&#x形式 | HTML・XML・SVGの文字埋め込み |
| 16進ダンプ | E3 83 9D E3 83 81 のようなバイト列 | 通信プロトコル・バイナリ解析 |
使い方の流れ
- 「テキストを入力」欄に調べたい文字列を貼り付けます。1文字でも長文でも構いません。「サンプルを入力」ボタンを使えば、漢字・絵文字・記号を含む典型例が読み込まれます。
- 「文字コード一覧を表示」ボタンを押すと、入力テキストを1文字ずつテーブル化して、Unicode(U+XXXX)・UTF-8バイト列・文字名・カテゴリを一覧表示します。文字化けや想定外の不可視文字の混入を発見しやすくなります。
- 用途に応じて「URLエンコード(UTF-8)」「Unicodeエスケープ」「HTML数値参照」「16進ダンプ(UTF-8)」のいずれかを選び、目的の形式に変換します。
- 変換結果は読み取り専用のテキストエリアに表示されるので、「結果をコピー」でクリップボードに転送し、コードエディタやAPIテストツールに貼り付けます。
- 別の入力で続けて確認したい場合は「クリア」を押し、入力欄を初期化してから新しいテキストを貼り付けます。
こんな場面で使う
- 文字化けの原因特定:「?」や「□」が表示されたとき、元の文字のコードポイントを調べることで「フォント未対応」「エンコード不一致」「不可視制御文字の混入」など原因の切り分けができます。
- 絵文字の判定:絵文字はサロゲートペアや結合文字(ZWJ/肌の色変更子)で構成されることが多く、本ツールで分解表示すると、なぜ1絵文字が複数のコードポイントになるのかが視覚的に理解できます。
- JSONや正規表現への安全な埋め込み:日本語や記号をUnicodeエスケープ(\uXXXX)に変換しておくと、エディタの文字コード設定に依存せず安全に記述できます。
- HTMLでの特殊文字表示:HTMLでは表示できない記号や、コピペで崩れがちな絵文字を数値参照(&#xXXXX;)に変換してマークアップに埋め込めます。
- セキュリティ調査:URLパラメータに含まれる怪しい%エンコード文字列を本ツールでデコード前提で確認することで、SQLインジェクションやXSS攻撃の挙動を調べられます。
使う前に知っておきたい注意点
- 本ツールはUnicode(UTF-8/UTF-16)ベースの処理です。Shift_JIS・EUC-JP・ISO-2022-JPといったレガシーエンコードへの変換は対応していません。これらが必要な場合はテキストエディタやnkfコマンドを併用してください。
- 絵文字は単一コードポイントのものと、複数のコードポイントを結合して表現するもの(家族絵文字、肌色バリエーション等)があります。「文字コード一覧」では結合前の各構成要素ごとに行が分かれて表示されます。
- サロゲートペア(U+10000以降のコードポイント)は、JavaScript内部ではUTF-16の2ユニット(HiSurrogate+LoSurrogate)として扱われます。文字数カウントとコードポイント数に違いが出る点に注意してください。
- URLエンコードは「encodeURIComponent」相当の挙動で、英数字とハイフン・アンダースコア・ピリオド・チルダ以外をパーセントエンコードします。「encodeURI」とは扱う予約文字が異なるため、用途に応じて結果を解釈してください。
- HTML数値参照は16進数(&#xXXXX;)で出力します。10進数表記(&#NNN;)も有効ですが、コードポイントの直感的な照合には16進のほうが便利です。
用語の補足
- コードポイント:Unicodeで各文字に割り当てられた一意の番号。U+0000〜U+10FFFFの範囲で定義され、現行Unicodeで約15万文字が登録されています。
- サロゲートペア:UTF-16でU+10000以降の文字を表現するために2つのコードユニットを組み合わせる仕組み。絵文字や追加漢字に多く使われます。
- 結合文字(Combining Mark):濁点・アクセント・肌色変更子など、直前の文字と組み合わせて1つの表示単位を作る文字。Unicode正規化(NFC/NFD)の挙動に関係します。