やまどり

Unicode / 文字コード解析

12 コードポイント / 13 UTF-16 コード単位 / 19 UTF-8 バイト

#文字コードポイントUTF-8UTF-16 LE分類
0HU+004848(1B)48 00ASCII 印字可能
1eU+006565(1B)65 00ASCII 印字可能
2lU+006C6C(1B)6C 00ASCII 印字可能
3lU+006C6C(1B)6C 00ASCII 印字可能
4oU+006F6F(1B)6F 00ASCII 印字可能
5,U+002C2C(1B)2C 00ASCII 印字可能
6 U+002020(1B)20 00スペース
7U+4E16E4 B8 96(3B)16 4ECJK 統合漢字
8U+754CE7 95 8C(3B)4C 75CJK 統合漢字
9!U+002121(1B)21 00ASCII 印字可能
10 U+002020(1B)20 00スペース
11🌍U+1F30DF0 9F 8C 8D(4B)3C D8 0D DF雑多な記号と絵文字

Unicode と文字エンコーディングについて

Unicode はすべての文字に一意の番号(コードポイント)を割り当てる国際標準です。 U+0041 のように U+ に続く16進数で表記します。

主なエンコーディング

  • UTF-8: 可変長(1〜4バイト)。ASCII互換でウェブで最も広く使われる。
  • UTF-16: 可変長(2または4バイト)。JavaScriptの内部表現。U+FFFF超の文字はサロゲートペアで表現。
  • UTF-32: 固定長(4バイト)。全コードポイントを1対1で表現。

サロゲートペア

UTF-16では、U+10000以上の文字(絵文字など)はサロゲートペアと呼ばれる2つのコード単位(合計4バイト)で表現されます。 JavaScriptで str.length が文字数と一致しない原因の多くはサロゲートペアです。 スプレッド構文 [...str] を使うとコードポイント単位で正しく反復できます。

Unicode文字を解析する手順

  1. STEP 1文字化けや判別しにくい文字を入力します。
  2. STEP 2コードポイント、UTF-8・UTF-16列、文字分類を一文字ずつ確認します。
  3. STEP 3想定外の空白や結合文字を特定し、必要に応じて置換します。

具体的な利用例

半角スペースとノーブレークスペース、見た目の似たハイフン、絵文字のサロゲートペアを区別できます。CSV取込エラー、検索不一致、文字数のずれを調査する際の手掛かりになります。

結果を見るときの注意点

画面上の一文字が複数コードポイントで構成されることがあります。結合文字、異体字セレクタ、ゼロ幅接合子を含む絵文字では、コードポイント数と利用者が感じる文字数は一致しません。正規化による意味の変化にも注意してください。

入力データの扱い

処理はこのブラウザ内で完結し、入力したテキストやファイルは変換・解析のために外部サーバーへ送信されません。共有端末を使う場合は、作業後に入力欄とクリップボードの内容も消去してください。