Zero-width space
The zero-width space (ZWSP) is a non-printing character used in computerized typesetting to indicate where the word boundaries are, without actually displaying a visible space in the rendered text. This enables text-processing systems for scripts that do not use explicit spacing to recognize where word boundaries are for the purpose of handling line breaks appropriately. Zero-width space is unicode character U+200B
, and is located in the unicode General Punctuation block, and can be represented by numeric character references ​
or ​
.
Purpose
The zero-width space marks a potential line break without hyphenation. Its semantics and HTML implementation are similar to the soft hyphen, but soft hyphens display a hyphen character at the point where the line is broken.
The zero-width space can be used to mark word breaks in languages without visible space between words, such as Thai, Myanmar, Khmer, and Japanese.[1][2]
In justified text, the zero-width space is handled exactly like fixed-width spaces, i.e. spacing between adjacent letters cannot be increased. As a result, characters adjacent to the zero-width space are spaced as if it was not present.[2]
Example
To show the effect of the zero-width space in text, the following words have been separated with zero-width spaces:
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
And the following words have not been separated with these spaces:
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
The first text only breaks at word boundaries, while the second text will not be broken at all. Resizing the browser window will re-break the text accordingly.
Usage
HTML
In HTML pages, the HTML element <wbr>
functions as a zero-width space. In Internet Explorer 6, the zero-width space was not supported in some fonts.[3]
Prohibition in domain names
ICANN rules prohibit domain names from containing non-displayed characters, including the zero-width space, and most browsers prohibit their use within domain names because they can be used to create a homograph attack, where a malicious URL is visually indistinguishable from a legitimate one.[4][5]
Encoding
The zero-width space character is encoded in Unicode as U+200B ZERO WIDTH SPACE,[6] and input in HTML as ​
, ​
or ​
. Contrary to what their names suggest, the character entities ​
, ​
, ​
, and ​
also refer to the zero-width space.[7]
The TeX representation is \hskip0pt
; the LaTeX representation is \hspace{0pt}
;[8] and the groff representation is \:
.[9]
See also
- Hair space
- Whitespace character – including a table comparing various space-like characters
- Word divider
- Word wrapping
- Word joiner (U+2060: ), as well as zero-width no-break space (U+FEFF: )
- Zero-width joiner (U+200D: )
- Zero-width non-joiner (U+200C: )
References
Citations
- ^ "Zones spéciales et caractères de formatage" [Special areas and formatting characters] (PDF). Hapax Quebec (in French). p. 3. Archived from the original (PDF) on 27 December 2005. Retrieved 31 July 2019.
Les espaces sans chasse sont conçues pour les langues qui ne séparent pas les mots à l'aide d'espaces visibles, comme le thaï ou le japonais.
- ^ a b The Unicode® Standard Version 15.0 – Core Specification (PDF). The Unicode Consortium. September 2022. p. 918. ISBN 978-1-936213-32-0.
- ^ Dunae, Alex. "Better Web Typography with Spaces and Hyphens". dunae.ca. Archived from the original on December 14, 2010. Retrieved December 3, 2009.
- ^ "Network.IDN.blacklist_chars". mozillaZine. Retrieved 2018-02-07.
- ^ "Unicode Character 'Zero Width Space'". FileFormat.Info. Retrieved 2018-02-07.
- ^ "General Punctuation – Unicode" (PDF). Retrieved 2013-07-20.
- ^ Entities/ZeroWidthSpace in MathML Version 2.0
- ^ "The LaTeX Companion. Chapter 3: Basic Formatting Tools" (PDF). Retrieved 2019-07-16.
- ^ "groff(7) – Linux manual page". Retrieved 2014-02-08.
Sources
- Mair, Victor H.; Liu, Yongquan (1991), Characters and computers, IOS Press