不换行空格
外观
不换行空格(英語:no-break space,NBSP)是一个空格字符,用途是禁止自动换行。HTML页面显示时会自动合并多个连续的空白字符(whitespace character),但该字符是禁止合并的,因此该字符也称作“硬空格”(hard space、fixed space)。Unicode码点为:U+00A0 NO-BREAK SPACE。
禁止自动换行
编辑器一般会把自动换行放在空格字符处。但是,有些文本内容在排版时不适合被放在连续的一行行尾与下一行行首。例如:“100 km”,就不应该在其中间的那个空格处换行。所以编辑器应该在"100"与"km"之间放置一个“不换行空格”,使得"100 km"是不可断开换行的,如果它不适合在行尾的剩余排版空间,就整体排版到下一行行首。
禁止合并空白字符
在SGML、HTML、TeX与LaTeX,把连续的空白字符(如空格符、换行符、tab符等)视作一个空格字符。这使得作者可以自由排版其源码而不影响其最终产生的效果[1][2]。
相反,不换行空格在上述语言环境下,不与其它相邻的空白字符合并,这使得作者可用不换行空格安排格式化排版文本的额外的视觉空间效果。例如在HTML,不换行空格与定宽字符可用来创建对齐的表格:
Column 1 Column 2
-------- --------
1.2 2.3
如果用普通空格符,则HTML排版效果将被合并压缩为这样:
Column 1 Column 2
-------- --------
1.2 2.3
不同宽度的变种
- 不换行窄空格(No-break thin space,Unicode命名为“Narrow No-Break Space”,U+202F NARROW NO-BREAK SPACE). Unicode 3.0引入该字符用于蒙古文,把词的后缀与词干分开。也用于法文(在?, !, ;之前)与俄文(在—之前)的标点符号。
- 词连接(Word joiner), Unicode 3.2引入该字符:U+2060。HTML作为⁠。该字符不占用字宽(实际上是个不可打印字符),但禁止在该字符两侧发生换行。
- 字节顺序标记, U+FEFF, Unicode命名为“Zero Width No-Break Space”。但在文本中间使用该字符是过时的用法,应该用U+2060这个字符代替作为“0宽度不换行”字符的功能。
编码
字符集 | 不换行空格符的表示 |
---|---|
Unicode与ISO/IEC 10646 | U+00A0 NO-BREAK SPACE. UTF-8编码为0xC2 0xA0. |
ISO/IEC 8859 | 0xA0 |
CP1252 (MS Windows default in most countries using Germanic or Romance languages) | 0xA0 |
KOI8-R | 0x9A |
EBCDIC | 0x41 |
CP437, CP850, CP866 | 0xFF |
SGML与HTML (包括Wikitext) | 字符实体引用: 字符值引用s:   or  
|
TeX | tilde (~) |
ASCII | Not available |
键盘输入法
操作系统/应用程序 | 输入方法 |
---|---|
Apple Mac OS X | ⌥ Opt+Space |
X11 | Compose, Space, Space |
GNU Emacs | Ctrl+X 8 Space |
Vim | Ctrl+K, Space, Space; or Ctrl+K, ⇧ Shift+N, ⇧ Shift+S |
Dreamweaver, LibreOffice, Microsoft Word, OpenOffice.org (3.0以后) |
Ctrl+⇧ Shift+Space |
WordPerfect, OpenOffice.org (3.0以前), LyX | Ctrl+Space |
Mac Adobe InDesign | ⌥ Opt+⌘ Cmd+X |