コンピュータにおいて、ノーブレークスペース(英: no-break space, non-breaking space, NBSP)は、スペースの箇所での自動的な改行を防ぐ特殊なスペースである。非分割空白[1] [2][注釈 1]とも呼ばれる。HTMLのように空白文字の並びを1つのスペースにまとめるシステムで、行内に複数のスペースを入れるために使うこともできる。
HTMLでは、通常のスペースの幅のノーブレークスペースは または   と表される。Unicodeでは U+00A0 に割り当てられている。その他の幅のノーブレークスペースも存在する(#変種を参照)。 英語などわかち書きをする言語において、文の途中で改行(行の折り返し)をする場合は単語と単語の間(スペース)で行う。テキスト処理ソフトは、スペースがある箇所はどこでも自動的な改行をしても良いものとみなすが、ノーブレークスペースはこれを防ぐ。例えば、文の途中に"100 km"という文言が行末に来て、長すぎて行に収まらない場合、ソフトウェアは"100"と"km"の間に改行を入れてしまうかもしれない。この好ましくないふるまいを避けるために、"100"と"km"の間にノーブレークスペースを入れる。ノーブレークスペースを使用した"100 km"はひと塊の単語のように扱われ、間に改行が入らないことが保証されており、行末にかかった場合はその前で改行されて次の行に表示される。 HTMLなどにおいて、通常のスペースでは日本語の文字の間が開かない場合があるためノーブレークスペースを使用されることがあるが、日本語の文字の間にあるスペースはスペースの箇所で改行されても問題ないスペースであるため使用すべきではない。通常は日本語間の間隔には和字間隔(全角スペース)を使用すべきである[注釈 2][注釈 3]。 SGML・HTML・TeX・LaTeXなどのプレーンテキストのファイルフォーマットではレンダリングエンジンが連続する空白文字(スペース・改行・タブ・改ページなど)の並びを1つのスペースとして表示する[注釈 4]。これは、最終的な表示結果とは関係なく、ソーステキストが見やすいように字下げや改行が入れられるようにするためである[3][4]。 これに対して、ノーブレークスペースは表示時に周辺のホワイトスペース文字と統合されない。そのため、連続する複数のスペースを出力したいときにノーブレークスペースを使うことができる。 国際符号化文字集合 (ISO/IEC 10646) とUnicodeには、ノーブレークスペースの変種が存在する。 規格ノーブレークスペースの表現
使用法
改行の禁止
複数の連続するスペース
変種
U+202F .mw-parser-output span.smallcaps{font-variant:small-caps}.mw-parser-output span.smallcaps-smaller{font-size:85%}narrow no-break space (HTML:   NNBSP)(狭いノーブレークスペース) - Unicode 3.0でモンゴル語のために導入された[5]。単語の境界を示すことなく、接尾辞を語幹から切り離すのに使う[6]。また、フランス語(" ; ? ! ≫ ? " の前と " ≪ ? " の後。今日では " : " の前も)やロシア語(" ? "の前)の約物の前後、ドイツ語の複数語からなる省略語 (z. B., d. h., v. l. n. r.) においても使用される[7]。モンゴル語で使用する場合は通常のスペースの3分の1の幅、他の言語では70%の幅だが、いくつかのフォントではシンスペース
U+2007 figure space (HTML:  )(図形間隔、数字間隔) - 数字(0–9)と同じ幅のスペース。
U+2060 word joiner (HTML: ⁠ WJ)(単語結合子) - Unicode 3.2から導入。スペースを表示せず、その場所での改行を防ぐ[注釈 5]。
符号化
Unicode・ISO/IEC 10646U+00A0 no-break space
UTF-8C2 A0
ISO/IEC 8859A0
JIS X 02131面9区2点(ラテン1互換)
CP1252(ほとんどのゲルマン諸語とロマンス諸語におけるWindowsのデフォルト)A0
KOI8-R9A
EBCDIC41 ? RSP, Required Space
CP437, CP850, CP866
HTML(Wikitext
  または  (文字参照#数値文字参照) ノーブレークスペースの入力法を定めた国家規格や国際規格はほとんどない。フィンランドで2008年にSFS 5966
TeX~(チルダ)
ASCII(使用不可。ただし、拡張ASCIIのバージョンの中には、文字255 (0xFF) をノーブレークスペースとして提供しているものがある。)
入力方法
キーボードドライバやアプリケーションプログラム(ワードプロセッサなど)の作成者は、ノーブレークスペースのためにそれぞれ独自のキーボード・ショートカットを導入した。
システム・アプリケーション入力方法
Microsoft Windows? Alt+0+1+6+0 または ? Alt+2+5+5
macOS? Opt+Space
X11(Linux または Unix)Compose, Space, Space
AmigaOS? Alt+Space
Emacs? Ctrl+X 8 Space
VimCtrl+K, Space, Space
Ctrl+K, ? Shift+N, ? Shift+S
Dreamweaver, LibreOffice, Microsoft Word,
OpenOffice.org(3.0以降)Ctrl+? Shift+Space[注釈 6]
FrameMaker, LyX, OpenOffice.org(3.0以前)
WordPerfectCtrl+Space
Mac Adobe InDesign? Opt+? Cmd+X
多くの日本語環境ではキーボードから直接入力では入力できないため文字コード表などを使用して、一覧から入力する必要がある[注釈 7]。 記号UnicodeJIS X 0213文字参照名称
符号位置
U+00A01-9-2
 
 ノーブレークスペース
関連項目
スペース
和字間隔
ゼロ幅スペース
ワードラップ
文字参照#文字参照の一覧表
脚注[脚注の使い方]
注釈^ ノンブレーキングスペース (non-breaking space)、ハードスペース (hard space)、固定スペース (fixed space) とも呼ばれる。
^ HTMLでは、和字間隔を使用する方法以外に、CSSのwhite-space: pre-wrap;で日本語の文字の間のスペースを使用した間隔を有効にすることができる。
^ Wikipediaにおいては、和字間隔が必要な説明文などを除いて使用するべきではなく、通常のスペースを使用するのが望ましい。表記ガイドを参照。
^ ただし、preタグの中や、CSSでwhite-space属性をpreに設定されたタグの中は、この限りではない。
^ 元々U+FEFF zero width no-break space (HTML:  ZWNBSP)(ゼロ幅ノーブレークスペース)がこの目的で使用されていたが、このコードはUCSバイト順マーク(略語:BOM)としても使われるため、単語結合子が別に定義された。