文字コード変換・判定ツール

文字コード変換・判定ツールの概要・基礎知識

文字コード変換・判定ツールは、入力されたテキストを構成する一文字一文字について、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文字でも長文でも構いません。「サンプルを入力」ボタンを使えば、漢字・絵文字・記号を含む典型例が読み込まれます。
  2. 「文字コード一覧を表示」ボタンを押すと、入力テキストを1文字ずつテーブル化して、Unicode(U+XXXX)・UTF-8バイト列・文字名・カテゴリを一覧表示します。文字化けや想定外の不可視文字の混入を発見しやすくなります。
  3. 用途に応じて「URLエンコード(UTF-8)」「Unicodeエスケープ」「HTML数値参照」「16進ダンプ(UTF-8)」のいずれかを選び、目的の形式に変換します。
  4. 変換結果は読み取り専用のテキストエリアに表示されるので、「結果をコピー」でクリップボードに転送し、コードエディタやAPIテストツールに貼り付けます。
  5. 別の入力で続けて確認したい場合は「クリア」を押し、入力欄を初期化してから新しいテキストを貼り付けます。

こんな場面で使う

  • 文字化けの原因特定:「?」や「□」が表示されたとき、元の文字のコードポイントを調べることで「フォント未対応」「エンコード不一致」「不可視制御文字の混入」など原因の切り分けができます。
  • 絵文字の判定:絵文字はサロゲートペアや結合文字(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)の挙動に関係します。

よくある質問

現在はUnicode(UTF-8/UTF-16)ベースの表示・変換のみに対応しています。ブラウザのJavaScript標準APIがUnicode前提のため、Shift_JISやEUC-JPへのエンコード変換は実装していません。これらが必要な場合は、Windows標準のメモ帳やVSCodeで保存時にエンコード切り替えを行う、もしくはコマンドラインのnkficonvを使うのが確実です。
はい、絵文字を含むすべてのUnicode文字に対応しています。サロゲートペア(U+10000以降)は2つのコードユニットに分割される代わりに、本ツールでは結合済みコードポイント(U+1F600など)として正しく1行で表示します。家族絵文字や肌色バリエーションなど結合文字を含む絵文字は、構成要素ごとに行が分かれて表示されるため、内部構造を学習する用途にも便利です。
URLエンコードはUTF-8バイト列を%XX形式に変換する仕組みで、URLやAPIのクエリ文字列向け。Unicodeエスケープは\uXXXX形式でUTF-16コードユニットを表現し、JavaScript文字列やJSON値に埋め込むためのものです。同じ「日」でもURLエンコードは%E6%97%A5、Unicodeエスケープはと異なる表記になります。
文字化けしたテキストを「文字コード一覧」で表示し、化けている文字のコードポイントが「U+FFFD(REPLACEMENT CHARACTER)」になっていればエンコード不一致が原因です。逆に元の文字が想定外のコードポイント(例えばU+200E:左から右へのマーク)になっていれば、不可視制御文字の混入が疑われます。
エディタの文字コード設定が不安定な場合や、海外サーバーで日本語が化けやすい環境で、確実に文字を表示したいときに使います。HTMLメール、レガシーCMS、SVG内のテキストなど。一度数値参照に変換しておけば、ASCII範囲のバイトしか含まないため、転送経路でのエンコード事故を回避できます。
通信プロトコル解析やバイナリファイル調査で、テキストの実バイト列を確認したい場面で活躍します。たとえば「ポ」がUTF-8でE3 83 9Dの3バイト、「A」(全角A)がEF BC A1の3バイトといったように、ASCIIと多バイト文字の違いが視覚的に把握できます。
いいえ、すべての処理はブラウザ上で完結します。コードや個人情報を含む文字列を貼り付けた場合でも、外部サーバーに送信されることは一切ありません。