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レイアウトでテキストの折り返しが予期せぬ動作をする理由の理解に使用します。

試してみる — Unicode Inspector

フルツールを開く