Whitespace character


A whitespace character is a character data element that represents white space when text is
rendered for display by a computer.
For example, a space character represents blank space such as a word divider in a Western script.
A printable character results in output when rendered,
but a whitespace character does not.
Instead, whitespace characters define the layout of text to a limited degree, interrupting the normal sequence of rendering characters next to each other.
The output of subsequent characters is typically shifted to the right or to the start of the next line.
The effect of multiple sequential whitespace characters is cumulative such that the next printable character is rendered at a location based on the accumulated effect of preceding whitespace characters.
The origin of the term whitespace is rooted in the common practice of rendering text on white paper. Normally, a whitespace character is not rendered as white. It affects rendering, but it is not itself rendered.

Overview

A space character typically inserts horizontal space that is about as wide as a letter. For a monospaced font the width is the width of a letter, and for a variable-width font the width is font-specific. Some fonts support multiple space characters that have different widths.
A tab character typically inserts horizontal space that is based on tab stops which vary by application.
A newline character sequence typically moves the render output location to the beginning of the next line. If one follows text, it does not actually result in whitespace. But, two sequential newline sequences between text blocks results in a blank line between the blocks. The height of the blank line varies by application.
Using whitespace characters to lay out text is a convention. Applications sometimes render whitespace characters as visible markup so that a user can see what is normally not visible.
Typically, a user types a space character by pressing, a tab character by pressing and newline by pressing.

Unicode

The table below lists the twenty-five characters defined as whitespace characters in the Unicode Character Database. Seventeen use a definition of whitespace consistent with the algorithm for bidirectional writing and are known as "Bidi-WS" characters. The remaining characters may also be used, but are not of this "Bidi" type.
''Note: Depending on the browser and fonts used to view the following table, not all spaces may be displayed properly.''

Substitute images

Unicode also provides some visible characters that can be used to represent various whitespace characters, in contexts where a visible symbol must be displayed:
CodeDecimalNameBlockDisplayDescription
U+00B7183Middle dotLatin-1 Supplement · Interpunct
Named entity: ·
U+21A18609Downwards two headed arrowArrowsECMA-17 / ISO 2047 symbol for form feed
U+22618810Identical toMathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for line feed
U+237D9085Shouldered open boxMiscellaneous TechnicalUsed to indicate a NBSP
U+23CE9166Return symbolMiscellaneous TechnicalSymbol for a return key, which enters a line break
U+24099225Symbol for horizontal tabulationControl PicturesSubstitutes for a tab character
U+240A9226Symbol for line feedControl PicturesSubstitutes for a line feed
U+240B9227Symbol for vertical tabulationControl PicturesSubstitutes for a vertical tab
U+240C9228Symbol for form feedControl PicturesSubstitutes for a form feed
U+240D9229Symbol for carriage returnControl PicturesSubstitutes for a carriage return
U+24209248Symbol for spaceControl PicturesSubstitutes for an ASCII space
U+24229250Blank symbolControl Picturesaka "substitute blank", used in BCDIC, EBCDIC, ASCII-1963 etc. as a symbol for the word separator
U+24239251Open boxControl PicturesUsed in block letter handwriting at least since the 1980s when it is necessary to explicitly indicate the number of space characters. Used in a textbook on Modula-2, a programming language where space codes require explicit indication. Also used in the keypad of the Texas Instruments' TI-8x series of graphing calculators.
Named entity: ␣
U+24249252Symbol for newlineControl PicturesSubstitutes for a line break
U+25B39651White up-pointing triangleGeometric ShapesAmongst other uses, is the ECMA-17 / ISO 2047 symbol for the ASCII space
U+2A5B10843Logical Or with middle stemSupplemental
Mathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for vertical tab
U+2AAA10922Smaller thanSupplemental
Mathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for carriage return
U+2AAB10923Larger thanSupplemental
Mathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for the tab character
U+2B1A11034Dotted squareMiscellaneous
Symbols and Arrows
U+303712343Ideographic Telegraph Line Feed
Separator Symbol
CJK Symbols
and Punctuation
Graphic used for code 9999 in Chinese telegraph code, representing a line feed

; Exact space
  • The Cambridge Z88 provided a special "exact space" , displayed as "…" by the operating system's display driver. It was therefore also known as "dot space" in conjunction with BBC BASIC.
  • Under code point 224 the computer also provided a special three-character-cells-wide SPACE symbol "SPC".

    Non-space blanks

  • The Braille Patterns Unicode block contains, a Braille pattern with no dots raised. Some fonts display the character as a fixed-width blank, however the Unicode standard explicitly states that it does not act as a space.
  • Unicode's coverage of the Korean alphabet includes several code points which represent the absence of a written letter, and thus do not display a glyph:
  • * Unicode includes a Hangul Filler character in the Hangul Compatibility Jamo block. This is classified as a letter, but displayed as an empty space, like a Hangul block containing no jamo. It is used in KS X 1001 Hangul combining sequences to introduce them or denote the absence of a letter in a position, but not in Unicode's combining jamo system.
  • * Unicode's combining jamo system uses similar Hangul Choseong Filler and Hangul Jungseong Filler characters to denote the absence of a letter in initial or medial position within a syllable block, which are included in the Hangul Jamo block.
  • * Additionally, a Halfwidth Hangul Filler is included in the Halfwidth and Fullwidth Forms, which is used when mapping from encodings which include characters from both Johab and N-byte Hangul, such as IBM-933, which includes both Johab and EBCDIC fillers.

    Whitespace and digital typography

On-screen display

s, word processors, and desktop publishing software differ in how they represent whitespace on the screen, and how they represent spaces at the ends of lines longer than the screen or column width. In some cases, spaces are shown simply as blank space; in other cases they may be represented by an interpunct or other symbols. Many different characters could be used to produce spaces, and non-character functions can also affect whitespace.
Many of the Unicode space characters were created for compatibility with classic print typography.
Even if digital typography has algorithmic kerning and justification, those space characters can be used to supplement the electronic formatting when needed.

Variable-width general-purpose space

In computer character encodings, there is a normal general-purpose space whose width will vary according to the design of the typeface. Typical values range from 1/5 em to 1/3 em. Sophisticated fonts may have differently sized spaces for bold, italic, and small-caps faces, and often compositors will manually adjust the width of the space depending on the size and prominence of the text.
In addition to this general-purpose space, it is possible to encode a space of a specific width. See the table [|above] for a complete list.