piapia123
ja

文字コードの検索

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

「この文字の符号位置は?」「URL ではどう書く?」「この空白に見える部分には何が入っている?」を調べるためのツールです。文字を入力する(または `U+4E2D` のような符号位置を入力する)と、1 文字ごとに 1 ブロックで符号位置(U+4E2D)、十進数、UTF-8 バイト、UTF-16 符号単位、HTML 実体参照、URL エンコード、所属ブロック、分類を表示します。特に 2 点が重要です。不可視文字には可視の代替表示を付けます(空白は `␠`、タブは `␉`、改行なし空白は `␣`、ゼロ幅文字は名称を表示)。Web ページや PDF からコピーした「空白」には改行なし空白やゼロ幅文字が混ざっていることが多く、それがレイアウトの崩れやフォームの検証失敗の原因になります。また補助平面の文字は UTF-16 符号単位が 2 つ(サロゲートペア)になり、これが「文字列の長さと見た目の文字数が合わない」原因です。

機能

  • 符号位置・十進数・UTF-8 バイト・UTF-16 符号単位をまとめて表示
  • HTML 実体参照(中)と URL エンコード(%E4%B8%AD)をそのまま利用可能
  • 不可視文字の代替表示:空白・タブ・改行なし空白・ゼロ幅文字
  • 分類を表示:漢字、文字、数字、句読点、絵文字、制御文字、書式文字
  • 所属ブロック(基本ラテン、CJK 統合漢字、絵文字の範囲など)
  • 補助平面の文字(絵文字など)は UTF-16 で 2 単位と明示
  • 符号位置からの検索も可能(U+4E2D / 0x4E2D / 十進数 20013)
  • 複数文字を入力すると 1 文字ずつブロック表示
  • emoji を名前で検索できます(heart でハート全部、cat でネコ全部)。結果はグループ別に並び、符号位置付きです
  • ⚠️ emoji はグループ単位で絞り込みできます(顔文字 / 人とジェスチャー / 動物と自然 …)。キーワードを空にするとグループ別の一覧表示になり、厳選表の全件がグループ見出し付きで表示されます(打ち切られません)
  • ⚠️ グループの絞り込みは「emoji を検索」でのみ有効です ——「各文字の符号化」は 1 文字ずつ符号化するだけで、文字に emoji グループはありません

使い方

  1. 文字を貼り付けます(`U+4E2D` のような符号位置の入力も可)
  2. 1 文字ごとにブロックができ、各符号化がすぐ表示されます
  3. 不可視文字を調べるときは「文字」行の代替表示を見てください
  4. 行末のコピーボタンで必要な値だけを取り出せます
  5. emoji を調べるときは「emoji を検索」を選びます。グループで絞り込むか、キーワードを空にしてグループ別に一覧表示します

よくある質問

「🎉」の文字列長が 2 なのはなぜですか?
JavaScript の文字列長は UTF-16 符号単位で数えるためです。🎉(U+1F389)は UTF-16 では 2 単位(サロゲートペア)必要です。これが定番の不具合の原因です:`'🎉'.length === 2` であり、`'🎉'.slice(0, 1)` は文字を半分に切って代替文字(豆腐)を表示します。正しくは符号位置で反復する(`[...str]` や `Array.from()`)ことです。本ツールは符号単位を 1 つずつ表示するので、UTF-16 で 2 位置を占めることが一目で分かります。
空白に見えるが空白でない文字はどう調べますか?
その部分を貼り付けて「文字」行を見てください。`␠` は通常の空白(U+0020)、`␣` は改行なし空白(U+00A0)、`␉` はタブ、「ゼロ幅スペース」は U+200B、「BOM / ゼロ幅改行なし空白」は U+FEFF です。いずれも画面上は見えませんが、レイアウトの崩れ、検索の不一致、フォームの「不正な文字」エラーのよくある原因です。Web ページや PDF からテキストをコピーすると混入しやすいものです。
「未収録のブロック」と表示されるのはなぜですか?
ブロック表はよく使う数十種類(基本ラテン、ギリシャ、キリル、漢字、かな、ハングル、絵文字など)のみ収録しているためです。表にない文字には、近い名前を当てず「未収録のブロック」と符号位置を表示します。誤った名前を表示すると、検索しても何も見つからないからです。完全な一覧は「Unicode blocks」で検索してください。
逆に、符号位置から文字を調べられますか?
できます。`U+4E2D`、`0x4E2D`、または十進数の `20013` を入力すると、まず文字に戻してから情報を表示します。数字だけの入力は十進数として扱います(`20013` は U+4E2D)。十六進数で書きたい場合は文字(`4E2D`)か接頭辞(`U+`、`0x`)を付けてください。そうしないと `20013` は 0x20013 と解釈され、まったく別の文字になります。
グループを選んでも「各文字の符号化」で反応しないのはなぜですか?
グループは emoji にしか存在しないためです。「各文字の符号化」は 1 文字ずつ符号化・ブロック・分類を表示するもので、文字自体に「emoji のグループ」はありません。したがってそのドロップダウンは文字モードでは使われません —— 壊れているわけでも、設定が効いていないわけでもありません。2 つのドロップダウンを分けているのはまさにこの理由で、もし「モード」と「グループ」を 1 つの一覧に統合すると、グループを選んだだけでモードが黙って emoji に切り替わり、利用者は結果を絞っただけのつもりでいることになります。

関連ツール