この記事の内容
ゼロ幅スペース(U+200B)は、見えない文字の中でいちばん有名で、 いちばん誤解されている文字です。幅がまったくない「空白」— 何の役に 立つのか、そしてなぜ名前欄では使えないのか。仕組みから整理します。
本来の役割:折り返しの目印
ゼロ幅スペースの正体は、「ここで行を折り返してもよい」という 見えない目印です。長いURLや長い英単語がレイアウトを 突き破るとき、途中にゼロ幅スペースを入れると、見た目を変えずに折り返し ポイントを作れます。Webの現場で重宝されるのはこの性質です。
応用:単語を「機械にだけ」分割する
人間の目には1つの単語、機械には2つの断片 — ゼロ幅スペースを挟むと そうなります。ハッシュタグ化を避けたいときや、自動リンク化を防ぎたい ときに使われるテクニックです。ただし、これは次の落とし穴と表裏一体です。
落とし穴1:名前欄では消される
ゼロ幅スペースのUnicode分類は「書式文字」。名前欄など検証の厳しい フォームは、書式文字を本文と見なさず削除します。空白の名前を 作りたいならゼロ幅スペースは不適切です — 代わりに、分類が 「文字」のハングル埋め文字(U+3164)を使ってください。 ライブラリの「名前に使える文字」 グループがそれです。
落とし穴2:検索が空振りする
「見えないのに存在する」ことは、検索・置換の敵でもあります。 ゼロ幅スペース入りの「テスト」を「テスト」で検索しても一致しません — バイト列が違うからです。コピーした住所やコードが「正しいのに動かない」 とき、犯人はたいてい紛れ込んだゼロ幅スペースです。 確認エリアに貼れば、 U+200Bのラベル付きで居場所が分かります。
まとめ:適材適所
- 折り返し制御・機械にだけ見せる分割 → ゼロ幅スペースの出番。
- 空白の名前・タイトル → ハングル埋め文字か点字の空白パターン。
- 目に見える間隔 → 半角・全角などの通常のスペース。
- 原因不明の不具合調査 → まず確認エリアで中身を見る。
ゼロ幅スペースは魔法の文字ではなく、明確な役割を持つ道具です。 分類(書式)を理解して使えば、期待どおりに働きます — そして期待外れの 場面では、36文字の中に必ずもっと適した文字がいます。