Unicode 16.0 文字データベースの準備ができました

Unicode 文字検索ツール

包括的な Unicode 文字検索・解析・encoding ツールです。13 の主要カテゴリを収録し、Character Analyzer と Unicode Inspector、UTF-8/UTF-16 encoding のリアルタイム処理を利用できます。

Character Analyzer 文字解析ツール 各文字の Unicode 情報を即座に解析します
Unicode Inspector 文字検出ツール ZWJ シーケンスと結合文字構造を検出します
Emoji または text を入力し、「Detect」を click して structure を確認...
Unicode 文字表

Unicode とは何ですか?

Unicode(Universal Code)は、世界中の文字体系と記号を共通に扱うための国際的な文字コード標準です。Unicode Consortium が管理しており、Unicode 16.0(2024年公開)には15万4千を超える文字が収録されています。

Unicode は各文字へ Code Point と呼ばれる一意の番号を割り当てます。形式は U+XXXX. 例:U+0041 A を表します、U+4E2D 「middle」を表します。U+1F600 😀 を表します。

要点: Unicode は文字コードの「辞書」に相当し、実際の保存や送信には UTF-8 や UTF-16 などのエンコーディング方式を使用します。

ASCII、Unicode、UTF-8 の違い

項目を比較 Unicode UTF-8 ASCII
役割文字エンコード標準コーディング実装旧式のコーディング規約
ビット数21 bits(Code Point)8~32 bits(可変)7 bits
文字数154,000+Unicode と同じ128
対応言語世界中のすべての言語Unicode と同じ英語のみ
下位互換性のある ASCIIいいえはい
利用シナリオコーディング規約の定義Web、アーカイブ、通信旧式システム、組み込み

UTF-8 と UTF-16 の違い

機能 UTF-8 UTF-16
バイト順序リトルエンディアン任意の BOM(U+FEFF)
BMP(U+0000-U+FFFF)1~3 バイト2 バイト
BMP 範囲外(U+10000+)4 bytes4 バイト(サロゲートペア)
Web ページの使用状況~98%<2%
機能省スペースで ASCII 互換CJK および BMP 文字に適しています

UTF-8 はインターネット上ですでに圧倒的な主流(Web サイトの約 98%)ですが、Windows 内部や一部の古いシステムでは UTF-16 が使われることがあります。

Emoji はどのようにエンコードされますか?

Emoji も Unicode 文字です。特定の Unicode Block に割り当てられており、主に次の範囲にあります:

  • U+1F600-U+1F64F:絵文字(emoticons)
  • U+1F300-U+1F5FF:Miscellaneous Symbols and Pictographs(その他の記号と絵文字)
  • U+1F680-U+1F6FF:交通・地図記号
  • U+2600-U+26FF:Miscellaneous Symbols(各種記号、例:☀ ☂ ☎ ⚠)
  • U+2700-U+27BF:Dingbats(✂ ✉ ✈ ✊ などの装飾記号)

絵文字は次の方法で表示できます ZWJ(Zero Width Joiner、U+200D) 複数の文字を組み合わせて複合 Emoji を作成します。例:

👨 (U+1F468) + ZWJ (U+200D) + 👩 (U+1F469) + ZWJ (U+200D) + 👧 (U+1F467) + ZWJ (U+200D) + 👦 (U+1F466) = 👨‍👩‍👧‍👦

さらに Emoji も使用できます Variation Selector(U+FE0F) Emoji スタイルを指定し、 Regional Indicator(U+1F1E6~U+1F1FF)を組み合わせると国旗になります。

Unicode FAQ

Unicode と UTF-8 にはどのような関係がありますか?
Unicode は各文字に対応する Code Point を定義する文字コード規格です(例:U+4E2D は「中」)。UTF-8 は、その Unicode の Code Point を可変長のバイト列へ変換して保存・送信するエンコーディング方式です。たとえるなら、Unicode が「辞書」で、UTF-8 が「梱包方法」です。Unicode には UTF-8 のほか、UTF-16 や UTF-32 などの符号化方式もあります。
Code Point とは何ですか?
Code Point は Unicode が各 character に割り当てる一意の number で、形式は U+XXXX, U+0000 から U+10FFFF までの範囲です。たとえば A の Code Point は U+0041、😀 は U+1F600 です。Code Point は通常 16 進数で表しますが、本質的には整数です。Unicode は全 Code Point を 17 個の Plane に分け、各 Plane には 65,536 個の Code Point が含まれます。
Surrogate Pair とは何ですか?
Surrogate Pair は、UTF-16 で BMP(Basic Multilingual Plane)外、つまり U+10000 以上の文字を表現するための仕組みです。2 つの 16 bit コードユニット、high surrogate(U+D800〜U+DBFF)と low surrogate(U+DC00〜U+DFFF)を組み合わせます。たとえば 😀(U+1F600)は UTF-16 では D83D DE00 と符号化されます。 String.length JavaScript では絵文字の計算が不正確になる場合があります。
ZWJ(Zero Width Joiner)とは何ですか?
ZWJ(U+200D)は、複数の Unicode 文字をつないで 1 つの合成グラフィックとして表示するための不可視制御文字です。代表例が Emoji ZWJ シーケンスで、たとえば 👨‍👩‍👧‍👦(家族)は 👨 + ZWJ + 👩 + ZWJ + 👧 + ZWJ + 👦 で構成されます。端末がその組み合わせに対応していない場合は、個別の文字として表示されます。ZWJ シーケンスを使うことで、組み合わせごとに個別の Code Point を割り当てることなく Emoji の表現を拡張できます。
BOM(Byte Order Mark)とは何ですか?
BOM(U+FEFF)は、テキストストリームのバイト順(Endianness)を示すために使われる Unicode 文字です。UTF-16 と UTF-32 では、Big-Endian か Little-Endian かを示せます。UTF-8 はバイト順に依存しないため BOM 自体に順序情報の意味はありませんが、一部の Windows アプリ(例:Notepad)は UTF-8 ファイル先頭へ BOM(EF BB BF)を付加します。これは一部の Unix/Linux ツールで問題になる場合があります。
文字が ASCII か Unicode かを見分けるには?
文字の Code Point が 0~127 の範囲にあるかを確認し、該当すれば ASCII 互換と判定します。具体的には U+0000~U+007F が標準 ASCII、U+0080~U+00FF が Latin-1 Supplement(拡張 ASCII)、U+0100 以降が本格的な Unicode 拡張文字です。UTF-8 では ASCII 文字は 1 バイト(先頭ビット 0)だけで表現でき、非 ASCII 文字は 2~4 バイト(先頭側に 1)を使用します。このツールの Character Analyzer では任意の文字の詳細情報をすぐ確認できます。
new in Unicode 16.0 とは何ですか?
Unicode 16.0(2024年公開)では、CJK 統合漢字 Extension I、追加の象形文字、音楽記号、新しい Emoji など、およそ5,000文字が追加されました。Unicode Consortium は文字収録範囲を拡張するため、継続的に新バージョンを公開しています。 unicode.org 完全なバージョン変更履歴を表示します。
操作に成功しました