Whitespace character

In computer sciencewhitespace is any character or series of whitespace characters that represent horizontal or vertical space in typography. When rendered, a whitespace character does not correspond to a visible mark, but typically does occupy an area on a page. For example, the common whitespace symbol U+0020   space (HTML  ), also ASCII 32, represents a blank space punctuation character in text, used as a word divider in Western scripts.

Contents

[hide]

Overview[edit]

Relative widths of various spaces in Unicode.

With many keyboard layouts, a horizontal whitespace character may be entered through the use of a spacebar. Horizontal whitespace may also be entered on many keyboards through the use of the Tab ? key, although the length of the space may vary. Vertical whitespace is a bit more varied as to how it is encoded, but the most obvious in typing is the ↵ Enter result which creates a ‘newline‘ code sequence in applications programs. Older keyboards might instead say Return, abbreviating the typewriter keyboard meaning ‘Carriage-Return‘ which generated an electromechanical return to the left stop (CR code in ASCII-hex &0D;) and a line feed or move to the next line (LF code in ASCII-hex &0A;); in some applications these were independently used to draw text cell based displays on monitors or for printing on tractor-guided printers—which might also contain reverse motions/positioning code sequences allowing yesterdays text base fancier displays. Many early computer games used such codes to draw a screen.

The term "whitespace" is based on the resulting appearance on ordinary paper. However they are coded inside an application, whitespace can be processed the same as any other character code and programs can do the proper action as defined for the context in which they occur.

Definition and ambiguity[edit]

The most common whitespace characters may be typed via the space bar or the tab key. Depending on context, a line-break generated by the return or enter key may be considered white space as well.

Unicode[edit]

The table below lists the twenty-five characters defined as whitespace ("WSpace=Y", "WS") characters in the Unicode Character Database.[1] Eighteen use a definition of whitespace consistent with the algorithm for bidirectional writing ("Bidirectional Character Type=WS") 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.

[hide]

Whitespace

(Unicode character property "WSpace=Y") [a]

 

 Code point   Name   Decimal   within "]["   Wrappable  in IDN  Script   Block   General category   Notes 
U+0009 character tabulation 9 ] [ Yes No Common Basic Latin Other, control HT, Horizontal Tab
U+000A line feed 10       Common Basic Latin Other, control LF, Line feed
U+000B line tabulation 11       Common Basic Latin Other, control VT, Vertical Tab
U+000C device control two 12       Common Basic Latin Other, control FF, Form feed
U+000D device control three 13       Common Basic Latin Other, control CR, Carriage return
U+0020 space 32 ] [ Yes No Common Basic Latin Separator, space Most common (normal ASCII space)
U+0085 next line 133       Common Latin-1 Supplement Other, control NEL, Next line
U+00A0 no-break space 160 ] [ No No Common Latin-1 Supplement Separator, space Non-breaking space: identical to U+0020, but not a point at which a line may be broken. HTML/XML: LaTeX: ‘\ ’
U+1680 ogham space mark 5760 ]?[ Yes Yes Ogham Ogham Separator, space Used for interword separation in Ogham text. Normally a vertical line in vertical text or a horizontal line in horizontal text, but may also be a blank space in "stemless" fonts. Requires an Ogham font.
U+2000 en quad 8192 ]?[ Yes No[b] Common General Punctuation Separator, space Width of one en. U+2002 is canonically equivalent to this character; U+2002 is preferred.
U+2001 em quad 8193 ]?[ Yes No[b] Common General Punctuation Separator, space Also known as "mutton quad". Width of one em. U+2003 is canonically equivalent to this character; U+2003 is preferred.
U+2002 en space 8194 ] [ Yes No[b] Common General Punctuation Separator, space Also known as "nut". Width of one en. U+2000 En Quad is canonically equivalent to this character; U+2002 is preferred. HTML/XML:  
U+2003 em space 8195 ] [ Yes No[b] Common General Punctuation Separator, space Also known as "mutton". Width of one em. U+2001 Em Quad is canonically equivalent to this character; U+2003 is preferred. HTML/XML:  , LaTeX: ‘\quad’
U+2004 three-per-em space 8196 ]?[ Yes No[b] Common General Punctuation Separator, space Also known as "thick space". One third of an em wide. HTML/XML:  
U+2005 four-per-em space 8197 ]?[ Yes No[b] Common General Punctuation Separator, space Also known as "mid space". One fourth of an em wide. HTML/XML:  
U+2006 six-per-em space 8198 ]?[ Yes No[b] Common General Punctuation Separator, space One sixth of an em wide. In computer typography, sometimes equated to U+2009.
U+2007 figure space 8199 ]?[ No No[b] Common General Punctuation Separator, space Figure space. In fonts with monospaced digits, equal to the width of one digit.
U+2008 punctuation space 8200 ]?[ Yes No[b] Common General Punctuation Separator, space As wide as the narrow punctuation in a font, i.e. the advance width of the period or comma.[2] HTML/XML:  
U+2009 thin space 8201 ] [ Yes No[b] Common General Punctuation Separator, space One-fifth (sometimes one-sixth) of an em wide. Recommended for use as athousands separator for measures made with SI units. Unlike U+2002 to U+2008, its width may get adjusted in typesetting.[3] HTML/XML:  ; Latex: ‘\,’
U+200A hair space 8202 ]?[ Yes No[b] Common General Punctuation Separator, space Thinner than a thin space. HTML/XML:  
U+2028 line separator 8232       Common General Punctuation Separator, line  
U+2029 paragraph separator 8233       Common General Punctuation Separator, paragraph  
U+202F narrow no-break space 8239 ]?[ No No[b] Common General Punctuation Separator, space Narrow no-break space. Similar in function to U+00A0 No-Break Space. When used with Mongolian, its width is usually one third of the normal space; in other context, its width sometimes resembles that of the Thin Space (U+2009).
U+205F medium mathematical space 8287 ]?[ Yes No[b] Common General Punctuation Separator, space MMSP. Used in mathematical formulae. Four-eighteenths of an em.[4] In mathematical typography, the widths of spaces are usually given in integral multiples of an eighteenth of an em, and 4/18 em may be used in several situations, for example between the a and the+ and between the + and the b in the expression a + b.[5]
U+3000 ideographic space 12288 ] [ Yes No[b] Common CJK Symbols and
Punctuation
Separator, space As wide as a CJK character cell (fullwidth). Used, for example, in tai tou.
Related characters
 Code point   Name   Decimal   within "]["   Wrappable  in IDN  Script   Block   General category   Notes 
U+180E mongolian vowel separator 6158 ]?[ Yes Yes Mongolian Mongolian Other, Format MVS. A narrow space character, used in Mongolian to cause the final two characters of a word to take on different shapes.[6] It is no longer classified as space character (i.e. in Zs category) in Unicode 6.3.0, even though it was in previous versions of the standard.
U+200B zero width space 8203 ]?[ Yes No[b]  ? General Punctuation Other, Format ZWSP, zero-width space. Used to indicate word boundaries to text processing systems when using scripts that do not use explicit spacing. It is similar to the soft hyphen, with the difference that the latter is used to indicate syllable boundaries, and should display a visible hyphen when the line breaks at it.
U+200C zero width non-joiner 8204 ]‌[ Yes Yes  ? General Punctuation Other, Format ZWNJ, zero-width non-joiner. When placed between two characters that would otherwise be connected, a ZWNJ causes them to be printed in their final and initial forms, respectively. HTML/XML: ‌
U+200D zero width joiner 8205 ]‍[ Yes Yes  ? General Punctuation Other, Format ZWJ, zero-width joiner. When placed between two characters that would otherwise not be connected, a ZWJ causes them to be printed in their connected forms. HTML/XML: ‍
U+2060 word joiner 8288 ]?[ No Yes  ? General Punctuation Other, Format WJ, word joiner. Similar to U+200B, but not a point at which a line may be broken.
U+FEFF zero width non-breaking
space
65279 ][ No Yes  ? Arabic Presentation
Forms-B
Other, Format Zero-width non-breaking space. Used primarily as a Byte Order Mark. Use as an indication of non-breaking is deprecated as of Unicode 3.2; see U+2060 instead.

  1. Jump up^ Unicode 6.3 property list
  2. Jump up to:a b c d e f g h i j k l m n o This character is blacklisted for domain names by browsers because it might be used for phishing.[7]

Substitutes[edit]

Unicode also provides some visible characters that can be used to represent whitespace:

Unicode space-illustrating characters (visible)
Code Decimal Name Block Display Description
 U+00B7  183 Middle dot Basic Latin · Interpunct  (HTML ·)
U+237D 9085  Shouldered open box   Miscellaneous Technical  ? Used to indicate a NBSP.
U+2420 9248 Symbol for space Control Pictures ?  
U+2422 9250 Blank symbol Control Pictures ?  
U+2423 9251 Open box Control Pictures ? Used in a textbook[which?] (published c. 1985 by Springer-Verlag) on Modula-2, a programming language where space codes require explicit indication. Also used in the keypad silkscreening[n 1] of the Texas Instruments‘ TI-8x series of graphing calculators.
Non-space blanks
  • The Braille Patterns Unicode block contains U+2800 ? braille pattern blank (HTML ), 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.

Whitespace and digital typography[edit]

On-screen display[edit]

Text editorsword 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 (described below) could be used to produce spaces, and non-character functions (such as margins and tab settings) can also affect whitespace.

Variable-width general-purpose space[edit]

In computer character encodings, there is a normal general-purpose space (Unicode character U+0020; 32 decimal) whose width will vary according to the design of the typeface. Typical values range from 1/5 em to 1/3 em (in digital typography an em is equal to the nominal size of the font, so for a 10-point font the space will probably be between 2 and 3.3 points). 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 below for a complete list.

Breaking and non-breaking spaces[edit]

By default, computer programs usually assume that, in text with word wrap enabled, a line break may as necessary be inserted at the position of a space. The non-breaking spaceU+00A0 (160 decimal), named entity   is intended to render the same as a normal space but prevents line-wrapping at that position. Hard spaces (contrasted with "soft spaces") may be defined by some word processors and operating systems as either a non-breaking space, a non-combining/non-expanding space, or some other special character.

Hair spaces around dashes[edit]

In American typography, both en dashes and em dashes are set continuous with the text (as illustrated by use in The Chicago Manual of Style, 6.80, 6.83–86). However, an em dash can optionally be surrounded with a so-called hair spaceU+200A (8202 decimal), or thin spaceU+2009 (8201 decimal). The thin space can be written in HTML by using the named entity   and the hair space can be written using numeric character reference  or . This space should be much thinner than a normal space, and is seldom used on its own.

Normal space versus hair space
(as rendered by your browser)
Normal space left right
Normal space with em dash left — right
Thin space with em dash left — right
Hair space with em dash left?—?right
No space with em dash left—right

Computing applications[edit]

Programming languages[edit]

In programming language syntax, spaces are frequently used to explicitly separate tokens. Runs of whitespace characters (beyond the first) occurring within source code written in computer programming languages (outside of strings and other quoted regions) are ignored by most languages; such languages are called free-form. In a few languages, including HaskelloccamABC, and Python, white space and indentation are used for syntactical purposes. In the satirical language called Whitespace, whitespace characters are the only valid characters for programming, while any other characters are ignored.

Still, for most programming languages, excessive use of white space, especially trailing white space at the end of lines, is considered a nuisance.[by whom?] However correct use of white space can make the code easier to read and help group related logic. Ininterpreted languages, parsing of unnecessary white space may affect the speed of execution.

The C language defines whitespace characters to be "... space, horizontal tab, new-line, vertical tab, and form-feed".[10] The HTTP network protocol requires different types of white space to be used in different parts of the protocol, such as: only the space character in the status line, CRLF at the end of a line, and "linear white space" in header values.[11]

Command line user interfaces[edit]

In commands processed by command processors, e.g., in scripts and typed in, the space character can cause problems as it has two possible functions: as part of a command or parameter, or as a parameter or name separator. Ambiguity can be prevented either by prohibiting embedded spaces, or by enclosing a name with embedded spaces between quote characters.

Markup languages[edit]

Some markup languages, such as SGML, preserve whitespace as written.

Web markup languages such as XML and HTML treat whitespace characters specially, including space characters, for programmers‘ convenience. One or more space characters read by conforming display-time processors of those markup languages are collapsed to 0 or 1 space, depending on their semantic context. For example, double (or more) spaces within text are collapsed to a single space, and spaces which appear on either side of the "=" that separates an attribute name from its value have no effect on the interpretation of the document. Element end tags can contain trailing spaces, and empty-element tags in XML can contain spaces before the "/>". In these languages, unnecessary whitespace increases the file size, and so may slow network transfers. On the other hand, unnecessary whitespace can also inconspicuously mark code, similar to, but less obvious than comments in code. This can be desirable to prove an infringement of license or copyright that was committed by copying and pasting.

In XML attribute values, sequences of whitespace characters are treated as a single space when the document is read by a parser.[12] Whitespace in XML element content is not changed in this way by the parser, but an application receiving information from the parser may choose to apply similar rules to element content. An XML document author can use the xml:space="preserve" attribute on an element to instruct the parser to discourage the downstream application from altering whitespace in that element‘s content.

In most HTML elements, a sequence of whitespace characters is treated as a single inter-word separator, which may manifest as a single space character when rendering text in a language that normally inserts such space between words.[13] Conforming HTML renderers are required to apply a more literal treatment of whitespace within a few prescribed elements, such as the pre tag and any element for which CSS has been used to apply pre-like whitespace processing. In such elements, space characters will not be "collapsed" into inter-word separators.

In both XML and HTML, the non-breaking space character, along with other non-"standard" spaces, is not treated as collapsible "whitespace", so it is not subject to the rules above.

File names[edit]

Such usage is similar to multiword file names written for operating systems and applications that are confused by embedded space codes—such file names instead use an underscore (_) as a word separator, as_in_this_phrase.

Another such symbol was U+2422 ? blank symbol. This was used in the early years of computer programming when writing on coding forms. Keypunch operators immediately recognized the symbol as an "explicit space".[citation needed]

时间: 2024-08-24 14:54:20

Whitespace character的相关文章

String Split whitespace example

String Split whitespace example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 package com.string; import java.util.Scanner; /* * Here we will learn to split the string based on whitespace.

[C++] String Basic

Namespace Declarations A using declaration let us use a name from a namespace without qualify the name with a namespace_name:: prefix. // using namespace::name using std::vector using std::string  A sperate using declaration is required for each name

python re模块

re 正则表达式操作  本模块提供了类似于Perl的正则表达式匹配操作.要匹配的模式和字符串可以是Unicode字符串以及8位字符串. 正则表达式使用反斜杠字符('\')来表示特殊的形式或者来允许使用特殊的字符而不要启用它们特殊的含义.这与字符串字面值中相同目的的相同字符的用法冲突:例如,要匹配一个反斜线字面值,你必须写成'\\\\'作为模式字符串,因为正则表达式必须是\\,每个反斜线在Python字符串字面值内部必须表达成\\. 解决的办法是使用Python的原始字符串符号表示正则表达式的模式

Gawk program on linux

refers to <Linux Command Line and Shell Scripting Bible> date:Sep 18 2016 Gawk is to run scripts,So called program.It is programming-like environment. first example: $0 represents the entire line of the text. Each data field is determined in a text

Linux常用C函数---字符测试篇

函数讲解部分参考http://net.pku.edu.cn/~yhf/linux_c/ isalnum(测试字符是否为英文或数字) 相关函数 isalpha,isdigit,islower,isupper 表头文件 #include<ctype.h> 定义函数 int isalnum (int c) 函数说明 检查参数c是否为英文字母或阿拉伯数字,在标准c中相当于使用"isalpha(c) || isdigit(c)"做测试. 返回值 若参数c为字母或数字,则返回TRUE,

C#分割字符串

命名空间:System.String.Split 程序集:mscorlib( mscorlib.dll) 简单实例: string before = "12,50,30"; string[] after =before.Split(new char[]{','}); //结果为 after[0] = 12;  after[1] = 50; after[2] = 30; 1.正则表达 如果字符串是混合模式,即同时含有不同的类型,可以使用以下的方法分割他们的元素. using System

Editplus的正则表达式

资料来源:Editplus Wiki http://editplus.info/wiki/Regular_Expressions http://editplus.info/wiki/Regular_expression_syntax Regular Expressions  正则表达式 This page exists as a resource for Regular Expressions (also shortened as RegEx or RegExp) frequently used

正则表达式(java)

概念: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念. 正则表通常被用来检索.替换那些符合某个模式(规则)的文本. 用途: 通常用于判断语句,检查字符串是否满足某一格式(匹配).字符串查找.替换等. 正则表达式是含有一些特殊意义的字符的字符串,这些特殊字符称为正则表达式的元字符. 涉及的类 java.lang.String java.util.regex.Pattern----模式 java.ut

Python 6th Day

正则表达式 元字符 (metacharacters) . ^ $ * + ? { } [ ] \ | ( ) [], 用来指定一个字符集(character class),字符集可以单个列出或者指定一个范围,For example, [abc] will match any of the characters a, b, or c; this is the same as [a-c], which uses a range to express the same set of character