Halfwidth and fullwidth forms

From Wikipedia, the free encyclopedia
  (Redirected from Fullwidth form)
Jump to: navigation, search
A command prompt (cmd.exe) with Korean Localisation showing halfwidth and fullwidth characters

In CJK (Chinese, Japanese and Korean) computing, graphic characters are traditionally classed into fullwidth (in Taiwan and Hong Kong: 全形; in CJK: 全角) and halfwidth (in Taiwan and Hong Kong: 半形; in CJK: 半角) characters. With fixed-width fonts, a halfwidth character occupies half the width of a fullwidth character, hence the name.

In the days of computer terminals and text mode computing, characters were normally laid out in a grid, often 80 columns by 24 or 25 lines. Each character was displayed as a small dot matrix, often about 8 pixels wide, and an SBCS (single byte character set) was generally used to encode characters of western languages.

For a number of practical and aesthetic reasons, Han characters would need to be twice as wide as these fixed-width SBCS characters. These "fullwidth characters" were typically encoded in a DBCS (double byte character set), although less common systems used other variable-width character sets that used more bytes per character.

Halfwidth and Fullwidth Forms is also the name of a Unicode block U+FF00–FFEF.

In Unicode[edit]

Halfwidth and Fullwidth Forms
Range U+FF00..U+FFEF
(240 code points)
Plane BMP
Scripts Hangul (52 char.)
Katakana (55 char.)
Latin (52 char.)
Common (66 char.)
Symbol sets Variant width characters
Assigned 225 code points
Unused 15 reserved code points
Unicode version history
1.0.0 216 (+216)
1.0.1 223 (+7)
3.2 225 (+2)
Note: [1][2][3]

In Unicode, if a certain grapheme can be represented as either a fullwidth character or a halfwidth character, it is said to have both a fullwidth form and a halfwidth form.

Halfwidth and Fullwidth Forms is the name of Unicode block U+FF00–FFEF, the last of the Basic Multilingual Plane excepting the short Specials block at U+FFF0–FFFF.

Range U+FF01–FF5E reproduces the characters of ASCII 21 to 7E as fullwidth forms, that is, a fixed width form used in CJK computing. This is useful for typesetting Latin characters in a CJK environment. U+FF00 does not correspond to a fullwidth ASCII 20 (space character), since that role is already fulfilled by U+3000 "ideographic space".

Range U+FF65–FF9F encodes halfwidth forms of katakana – see half-width kana. The range U+FFA0–FFDC encodes halfwidth forms of compatibility jamo characters for Hangul, used in some IBM encodings for Korean.[4] Range U+FFE0–FFEE includes fullwidth and halfwidth symbols.


Halfwidth and Fullwidth Forms[1][2]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+FF3x _
U+FF7x ソ
1.^ As of Unicode version 10.0
2.^ Grey areas indicate non-assigned code points


The following Unicode-related documents record the purpose and process of defining specific characters in the Halfwidth and Fullwidth Forms block:

Version Final code points[a] Count L2 ID WG2 ID Document
1.0.0 U+FF01..FF5E, FF61..FFBE, FFC2..FFC7, FFCA..FFCF, FFD2..FFD7, FFDA..FFDC, FFE0..FFE6 216 (to be determined)
1.0.1 U+FFE8..FFEE 7 (to be determined)
3.2 U+FF5F..FF60 2 L2/99-052 Freytag, Asmus (1999-02-05), The math pieces from the symbol font 
L2/01-033 Karlsson, Kent; Freytag, Asmus (2001-01-16), Disunify braces/brackets for math, computing science, and Z notation from similar-looking CJK braces/brackets 
L2/01-159 N2344 Ad-hoc report on Mathematical Symbols, 2001-04-03 
L2/01-157 N2345R Karlsson, Kent (2001-04-04), Proposal to disunify certain fencing CJK punctuation marks from similar-looking Math fences 
L2/01-168 Whistler, Ken (2001-04-10), Bracket Disunification & Normalization Hell 
L2/01-223 Suignard, Michel (2001-05-23), Discussion of Issues Regarding Bracket Disunification 
L2/01-317 Suignard, Michel (2001-08-14), Bracket Disunification & Normalization 
L2/01-295R Moore, Lisa (2001-11-06), Minutes from the UTC/L2 meeting #88 
  1. ^ Proposed code points and characters names may differ from final code points and names

In OpenType[edit]

OpenType has the fwid, halt, hwid and vhal "feature tags" to be used for providing fullwidth or halfwidth form of a character.

See also[edit]


  1. ^ "Unicode 1.0.1 Addendum" (PDF). The Unicode Standard. 1992-11-03. Retrieved 2016-07-09. 
  2. ^ "Unicode character database". The Unicode Standard. Retrieved 2016-07-09. 
  3. ^ "Enumerated Versions of The Unicode Standard". The Unicode Standard. Retrieved 2016-07-09. 
  4. ^ http://demo.icu-project.org/icu-bin/convexp?conv=ibm-933

External links[edit]