Halfwidth and fullwidth forms
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.
Halfwidth and Fullwidth Forms is also the name of a Unicode block U+FF00–FFEF, provided so that older encodings containing both halfwidth and fullwidth characters can have lossless translation to/from Unicode.
Contents
Rationale[edit]
This section does not cite any sources. (November 2018) (Learn how and when to remove this template message) |
In the days of text mode computing, Western characters were normally laid out in a grid on the screen, often 80 columns by 24 or 25 lines. Each character was displayed as a small dot matrix, often about 8 pixels wide, and a SBCS (single byte character set) was generally used to encode characters of western languages.
For a number of practical and aesthetic reasons Han characters need to be square, approximately twice as wide as these fixed-width SBCS characters. As these were typically encoded in a DBCS (double byte character set) this also meant they conveniently took the same space on the screen as they did in memory, although less common systems used other variable-width character sets that used more bytes per character.
On the other hand, early Japanese computing used half-width kana characters instead of normal-sized kana in a single-byte code page called JIS X 0201. Some IBM code pages used a similar treatment for Korean jamo.
Some terminals and editing programs could not deal with Han characters starting at odd columns, only even ones. Therefore if ASCII or digits were to be inserted between the Han characters, a fullwidth alternative was desirable. So the DBCS encodings usually included a fullwidth versions of all ASCII characters.
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. U+FF00 does not correspond to a fullwidth ASCII 20 (space character), since that role is already fulfilled by U+3000 "ideographic space". This includes a copy of the one ASCII standardized variant sequence: U+FF10, U+FE00 can print a "short diagonal stroke form of a fullwidth digit zero".[4]
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.[5]
Range U+FFE0–FFEE includes fullwidth and halfwidth symbols.
Block[edit]
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+FF0x | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
U+FF1x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
U+FF2x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
U+FF3x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
U+FF4x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
U+FF5x | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | ⦅ |
U+FF6x | ⦆ | 。 | 「 | 」 | 、 | ・ | ヲ | ァ | ィ | ゥ | ェ | ォ | ャ | ュ | ョ | ッ |
U+FF7x | ー | ア | イ | ウ | エ | オ | カ | キ | ク | ケ | コ | サ | シ | ス | セ | ソ |
U+FF8x | タ | チ | ツ | テ | ト | ナ | ニ | ヌ | ネ | ノ | ハ | ヒ | フ | ヘ | ホ | マ |
U+FF9x | ミ | ム | メ | モ | ヤ | ユ | ヨ | ラ | リ | ル | レ | ロ | ワ | ン | ゙ | ゚ |
U+FFAx | HW HF |
ᄀ | ᄁ | ᆪ | ᄂ | ᆬ | ᆭ | ᄃ | ᄄ | ᄅ | ᆰ | ᆱ | ᆲ | ᆳ | ᆴ | ᆵ |
U+FFBx | ᄚ | ᄆ | ᄇ | ᄈ | ᄡ | ᄉ | ᄊ | ᄋ | ᄌ | ᄍ | ᄎ | ᄏ | ᄐ | ᄑ | ᄒ | |
U+FFCx | ᅡ | ᅢ | ᅣ | ᅤ | ᅥ | ᅦ | ᅧ | ᅨ | ᅩ | ᅪ | ᅫ | ᅬ | ||||
U+FFDx | ᅭ | ᅮ | ᅯ | ᅰ | ᅱ | ᅲ | ᅳ | ᅴ | ᅵ | |||||||
U+FFEx | ¢ | £ | ¬ |  ̄ | ¦ | ¥ | ₩ | │ | ← | ↑ | → | ↓ | ■ | ○ | ||
Notes |
History[edit]
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 | ||||
|
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]
- CJK
- Han unification
- Monospaced font
- Duospaced font
- East Asian punctuation
- Em size - full width forms
- Hangul Jamo (Unicode block)
- Katakana (Unicode block)
- Latin script in Unicode
- Enclosed Alphanumerics - bullet point sequences, some appear as full width (e.g. ⒈,⓵,⑴,⒜,ⓐ)
References[edit]
- ^ "Unicode 1.0.1 Addendum" (PDF). The Unicode Standard. 1992-11-03. Archived (PDF) from the original on 2016-07-02. Retrieved 2016-07-09.
- ^ "Unicode character database". The Unicode Standard. Archived from the original on 2016-07-10. Retrieved 2016-07-09.
- ^ "Enumerated Versions of The Unicode Standard". The Unicode Standard. Archived from the original on 2016-06-29. Retrieved 2016-07-09.
- ^ "Unicode Character Database: Standardized Variation Sequences". The Unicode Consortium.
- ^ "ICU Demonstration - Converter Explorer". demo.icu-project.org. Retrieved 7 May 2018.
External links[edit]
- East Asian Width Unicode Standard Annex #11