Unicode空白文字 — すべてのスペースの種類
通常のスペース、ノーブレークスペース、emスペース、シンスペース、全角スペース、ゼロ幅スペースを含むUnicode空白文字の完全ガイドとエンコーディングを解説します。
Basic Characters
詳細な説明
Unicode空白文字
Unicodeは一般的なスペース文字(U+0020)以上のものを定義しています。12種類以上の空白やスペース関連文字があり、それぞれ異なる幅、改行動作、エンコーディングサイズを持ちます。
標準スペース
| コードポイント | 名前 | UTF-8バイト数 | 幅 |
|---|---|---|---|
| U+0020 | SPACE | 1バイト (20) | 通常の単語間スペース |
| U+00A0 | NO-BREAK SPACE | 2バイト (C2 A0) | SPACEと同じ幅、改行を防止 |
| U+2002 | EN SPACE | 3バイト (E2 80 82) | 文字「n」の幅 |
| U+2003 | EM SPACE | 3バイト (E2 80 83) | 文字「M」の幅 |
| U+2009 | THIN SPACE | 3バイト (E2 80 89) | 細い組版用スペース |
| U+200A | HAIR SPACE | 3バイト (E2 80 8A) | 非常に細いスペース |
| U+202F | NARROW NO-BREAK SPACE | 3バイト (E2 80 AF) | 狭い、非改行 |
| U+3000 | IDEOGRAPHIC SPACE | 3バイト (E3 80 80) | 全角CJKスペース |
ゼロ幅スペース
| コードポイント | 名前 | UTF-8バイト数 | 目的 |
|---|---|---|---|
| U+200B | ZERO WIDTH SPACE | 3バイト (E2 80 8B) | オプションの改行ポイント |
| U+FEFF | BYTE ORDER MARK / ZERO WIDTH NO-BREAK SPACE | 3バイト (EF BB BF) | ファイル先頭のBOM、その他の場所ではZWNBSP |
なぜ重要なのか
空白のバグは視覚的に診断するのが最も困難なものの一つです。ノーブレークスペース(U+00A0)は通常のスペースと見た目は同じですが、U+0020のみを対象とする文字列比較、正規表現、トリム操作を破壊します。Unicode Inspectorはすべてのスペース文字の正確なコードポイントとバイトシーケンスを明らかにし、これらの不可視の違いを可視化します。
ユースケース
異なるスペースタイプによる文字列比較の失敗のデバッグ、ワープロからコピー&ペーストされたテキストのクリーンアップ(ノーブレークスペースが挿入されることが多い)、HTMLやPDFレイアウトでテキストの折り返しが予期せぬ動作をする理由の理解に使用します。