やまどり

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] を使うとコードポイント単位で正しく反復できます。