全形和半形
全角和半角是文字的兩種顯示形式,「全角」指文字字身長寬比為一比一的正方形,而「半角」為寬度為全角一半的文字。現在這兩個詞通常用來指代計算機中顯示的文字。
「fullwidth」的各地常用名稱 | |
---|---|
中國大陸 | 全角 |
港澳臺 | 全形 |
日韓 | 全角 |
「halfwidth」的各地常用名稱 | |
---|---|
中國大陸 | 半角 |
港澳臺 | 半形 |
日韓 | 半角 |
意義和用法
在傳統的字體排印學中,文字字身長寬比為1比1的正方形金屬鉛字原本稱作「全身」,而寬度只有一半的稱為「半身」。另外對於小於一個「全身」的各種鉛空稱為「分空」,通常稱為「二分空」(注意不是「半身」)「三分空」「四分空」「六分空」等等。
「半角/全角」源於日文,其中「角」是「方塊」的意思,「全角/半角」在日文里即是原本「正方形/半個正方形大小文字」的本意,與西文字體排印學中Em和En單位含義相同。
而中文裡的「角」雖然有「角度」「角落」等含義,卻沒有「方塊」的意思,中文在字體排印時不說「全角/半角」而說「全身/半身」[來源請求]。中文裡說「半角/全角」是計算機文字編碼技術引入時直接借用了日文的做法[1]。
而目前對於計算機上的文字稱作「全角字」「全形字」和「半角字」「半形字」的指代非常混亂。
「全角字」「全形字」可能是指:
- 用兩個字節存儲的字符
- ASCII(所謂半角拉丁字母、符號及阿拉伯數字)以外所有的字符
- 顯示上字身寬度與字體高度相等(即字形外框為正方形)的字形
「半角字」「半形字」時可能指:
- 用單字節存儲的字符(可能包括片假名)
- ASCII 字符即拉丁字母、數字和常見符號[註1]
- 顯示上字身寬度為字體高度一半的字形
為了避免混亂,在使用「字寬」的本意時,可以使用從英文倒翻譯回中文的「全寬/半寬」(fullwidth / halfwidth)。
歷史
在早期的計算機中,英語或拉丁字母語言使用的系統,每一個字母或符號,都是使用一字節的空間(一字節由8位元組成,共256個編碼空間)來儲存;而漢語、日語及韓語文字,由於數量大大超過256個,故慣常使用兩字節來儲存一個字符。所以這原本是編碼層面的「單字節」「雙字節」的問題。
當時使用等寬字體(如DOS、部分文字編輯器等)時,字體也就順應這種編碼形式,將中日韓文字的寬度繪製成拉丁字母和數字的兩倍,這樣字符的編碼存儲和顯示寬度可以一一對應起來,「單字節」文字顯示成「半寬」,「雙字節」文字顯示成「全寬」。因此當時的用戶就開始習慣稱中、日、韓等文字為「全形字符」,而稱拉丁字母或數字為「半形字符」。
但是,後來計算機的文字編碼技術已經發生很大變化,存儲一個字符可能用一個、兩個、三個或者四個字節(如UTF-8)。一個英文字符即使顯示為半寬,依照不同的編碼方式,並不一定是用一個字節存儲;而日文的片假名也不一定是雙字節,也可能用一個字節存儲(即「半角片假名」)。因此,現在字符編碼存儲和字符顯示寬度的已經沒有一一對應關係。但是由於字符編碼和字形寬度曾經的對應關係,很多用戶一直習慣性地使用「全角/半角」詞彙。
Unicode 裏的 East_Asian_Width 特性
Unicode 標準的附件11 (UAX#11) 中以信息性附件 (informative) 的形式,定義了東亞文字的字寬 East_Asian_Width 特性[3]。
縮寫 | 名稱 | 描述 |
---|---|---|
W | Wide(寬) | 自然的寬字符,如平假名。 |
Na | Narrow(窄) | 自然的窄字符,如 ISO 基本拉丁字母。 |
F | Fullwidth(全寬) | 與自然的窄字符具有Unicode等價性的寬式變體,比如全寬拉丁字母。 |
H | Halfwidth(半寬) | 與自然的寬字符具有Unicode等價性的窄式變體,如半角假名,包括 U+20A9(韓元符號)[註2]。 |
A | Ambiguous(模糊) | 在東亞雙位元組字元集和歐洲單字節字元集中都有的編碼的字符,如希臘字母,因此字寬行為會有所不同。 |
N | Neutral(中性) | 沒有出現在東亞雙位元組字元集編碼中的字符,如天城文字母。 |
半形字符與全形字符的比較
ASCII字符
ASCII | 全形字符 | Unicode | 半形字符 | Unicode |
---|---|---|---|---|
0x20 |
" " | U+3000 |
" " | U+0020
|
0x21 |
! | U+FF01 |
! | U+0021
|
0x22 |
" | U+FF02 |
" | U+0022
|
0x23 |
# | U+FF03 |
# | U+0023
|
0x24 |
$ | U+FF04 |
$ | U+0024
|
0x25 |
% | U+FF05 |
% | U+0025
|
0x26 |
& | U+FF06 |
& | U+0026
|
0x27 |
' | U+FF07 |
' | U+0027
|
0x28 |
( | U+FF08 |
( | U+0028
|
0x29 |
) | U+FF09 |
) | U+0029
|
0x2A |
* | U+FF0A |
* | U+002A
|
0x2B |
+ | U+FF0B |
+ | U+002B
|
0x2C |
, | U+FF0C |
, | U+002C
|
0x2D |
- | U+FF0D |
- | U+002D
|
0x2E |
. | U+FF0E |
. | U+002E
|
0x2F |
/ | U+FF0F |
/ | U+002F
|
0x30 |
0 | U+FF10 |
0 | U+0030
|
0x31 |
1 | U+FF11 |
1 | U+0031
|
0x32 |
2 | U+FF12 |
2 | U+0032
|
0x33 |
3 | U+FF13 |
3 | U+0033
|
0x34 |
4 | U+FF14 |
4 | U+0034
|
0x35 |
5 | U+FF15 |
5 | U+0035
|
0x36 |
6 | U+FF16 |
6 | U+0036
|
0x37 |
7 | U+FF17 |
7 | U+0037
|
0x38 |
8 | U+FF18 |
8 | U+0038
|
0x39 |
9 | U+FF19 |
9 | U+0039
|
0x3A |
: | U+FF1A |
: | U+003A
|
0x3B |
; | U+FF1B |
; | U+003B
|
0x3C |
< | U+FF1C |
< | U+003C
|
0x3D |
= | U+FF1D |
= | U+003D
|
0x3E |
> | U+FF1E |
> | U+003E
|
0x3F |
? | U+FF1F |
? | U+003F
|
0x40 |
@ | U+FF20 |
@ | U+0040
|
0x41 |
A | U+FF21 |
A | U+0041
|
0x42 |
B | U+FF22 |
B | U+0042
|
0x43 |
C | U+FF23 |
C | U+0043
|
0x44 |
D | U+FF24 |
D | U+0044
|
0x45 |
E | U+FF25 |
E | U+0045
|
0x46 |
F | U+FF26 |
F | U+0046
|
0x47 |
G | U+FF27 |
G | U+0047
|
0x48 |
H | U+FF28 |
H | U+0048
|
0x49 |
I | U+FF29 |
I | U+0049
|
0x4A |
J | U+FF2A |
J | U+004A
|
0x4B |
K | U+FF2B |
K | U+004B
|
0x4C |
L | U+FF2C |
L | U+004C
|
0x4D |
M | U+FF2D |
M | U+004D
|
0x4E |
N | U+FF2E |
N | U+004E
|
0x4F |
O | U+FF2F |
O | U+004F
|
0x50 |
P | U+FF30 |
P | U+0050
|
0x51 |
Q | U+FF31 |
Q | U+0051
|
0x52 |
R | U+FF32 |
R | U+0052
|
0x53 |
S | U+FF33 |
S | U+0053
|
0x54 |
T | U+FF34 |
T | U+0054
|
0x55 |
U | U+FF35 |
U | U+0055
|
0x56 |
V | U+FF36 |
V | U+0056
|
0x57 |
W | U+FF37 |
W | U+0057
|
0x58 |
X | U+FF38 |
X | U+0058
|
0x59 |
Y | U+FF39 |
Y | U+0059
|
0x5A |
Z | U+FF3A |
Z | U+005A
|
0x5B |
[ | U+FF3B |
[ | U+005B
|
0x5C |
\ | U+FF3C |
\ | U+005C
|
0x5D |
] | U+FF3D |
] | U+005D
|
0x5E |
^ | U+FF3E |
^ | U+005E
|
0x5F |
_ | U+FF3F |
_ | U+005F
|
0x60 |
` | U+FF40 |
` | U+0060
|
0x61 |
a | U+FF41 |
a | U+0061
|
0x62 |
b | U+FF42 |
b | U+0062
|
0x63 |
c | U+FF43 |
c | U+0063
|
0x64 |
d | U+FF44 |
d | U+0064
|
0x65 |
e | U+FF45 |
e | U+0065
|
0x66 |
f | U+FF46 |
f | U+0066
|
0x67 |
g | U+FF47 |
g | U+0067
|
0x68 |
h | U+FF48 |
h | U+0068
|
0x69 |
i | U+FF49 |
i | U+0069
|
0x6A |
j | U+FF4A |
j | U+006A
|
0x6B |
k | U+FF4B |
k | U+006B
|
0x6C |
l | U+FF4C |
l | U+006C
|
0x6D |
m | U+FF4D |
m | U+006D
|
0x6E |
n | U+FF4E |
n | U+006E
|
0x6F |
o | U+FF4F |
o | U+006F
|
0x70 |
p | U+FF50 |
p | U+0070
|
0x71 |
q | U+FF51 |
q | U+0071
|
0x72 |
r | U+FF52 |
r | U+0072
|
0x73 |
s | U+FF53 |
s | U+0073
|
0x74 |
t | U+FF54 |
t | U+0074
|
0x75 |
u | U+FF55 |
u | U+0075
|
0x76 |
v | U+FF56 |
v | U+0076
|
0x77 |
w | U+FF57 |
w | U+0077
|
0x78 |
x | U+FF58 |
x | U+0078
|
0x79 |
y | U+FF59 |
y | U+0079
|
0x7A |
z | U+FF5A |
z | U+007A
|
0x7B |
{ | U+FF5B |
{ | U+007B
|
0x7C |
| | U+FF5C |
| | U+007C
|
0x7D |
} | U+FF5D |
} | U+007D
|
0x7E |
~ | U+FF5E |
~ | U+007E
|
日文字符
JIS X 0201 | 半形字符 | Unicode | 全形字符 | Unicode |
---|---|---|---|---|
0xA1 |
。 | U+FF61 |
。 | U+3002
|
0xA2 |
「 | U+FF62 |
「 | U+300C
|
0xA3 |
」 | U+FF63 |
」 | U+300D
|
0xA4 |
、 | U+FF64 |
、 | U+3001
|
0xA5 |
・ | U+FF65 |
・ | U+30FB
|
0xA6 |
ヲ | U+FF66 |
ヲ | U+30F2
|
0xA7 |
ァ | U+FF67 |
ァ | U+30A1
|
0xA8 |
ィ | U+FF68 |
ィ | U+30A3
|
0xA9 |
ゥ | U+FF69 |
ゥ | U+30A5
|
0xAA |
ェ | U+FF6A |
ェ | U+30A7
|
0xAB |
ォ | U+FF6B |
ォ | U+30A9
|
0xAC |
ャ | U+FF6C |
ャ | U+30E3
|
0xAD |
ュ | U+FF6D |
ュ | U+30E5
|
0xAE |
ョ | U+FF6E |
ョ | U+30E7
|
0xAF |
ッ | U+FF6F |
ッ | U+30C3
|
0xB0 |
ー | U+FF70 |
ー | U+30FC
|
0xB1 |
ア | U+FF71 |
ア | U+30A2
|
0xB2 |
イ | U+FF72 |
イ | U+30A4
|
0xB3 |
ウ | U+FF73 |
ウ | U+30A6
|
0xB4 |
エ | U+FF74 |
エ | U+30A8
|
0xB5 |
オ | U+FF75 |
オ | U+30AA
|
0xB6 |
カ | U+FF76 |
カ | U+30AB
|
0xB7 |
キ | U+FF77 |
キ | U+30AD
|
0xB8 |
ク | U+FF78 |
ク | U+30AF
|
0xB9 |
ケ | U+FF79 |
ケ | U+30B1
|
0xBA |
コ | U+FF7A |
コ | U+30B3
|
0xBB |
サ | U+FF7B |
サ | U+30B5
|
0xBC |
シ | U+FF7C |
シ | U+30B7
|
0xBD |
ス | U+FF7D |
ス | U+30B9
|
0xBE |
セ | U+FF7E |
セ | U+30BB
|
0xBF |
ソ | U+FF7F |
ソ | U+30BD
|
0xC0 |
タ | U+FF80 |
タ | U+30BF
|
0xC1 |
チ | U+FF81 |
チ | U+30C1
|
0xC2 |
ツ | U+FF82 |
ツ | U+30C4
|
0xC3 |
テ | U+FF83 |
テ | U+30C6
|
0xC4 |
ト | U+FF84 |
ト | U+30C8
|
0xC5 |
ナ | U+FF85 |
ナ | U+30CA
|
0xC6 |
ニ | U+FF86 |
ニ | U+30CB
|
0xC7 |
ヌ | U+FF87 |
ヌ | U+30CC
|
0xC8 |
ネ | U+FF88 |
ネ | U+30CD
|
0xC9 |
ノ | U+FF89 |
ノ | U+30CE
|
0xCA |
ハ | U+FF8A |
ハ | U+30CF
|
0xCB |
ヒ | U+FF8B |
ヒ | U+30D2
|
0xCC |
フ | U+FF8C |
フ | U+30D5
|
0xCD |
ヘ | U+FF8D |
ヘ | U+30D8
|
0xCE |
ホ | U+FF8E |
ホ | U+30DB
|
0xCF |
マ | U+FF8F |
マ | U+30DE
|
0xD0 |
ミ | U+FF90 |
ミ | U+30DF
|
0xD1 |
ム | U+FF91 |
ム | U+30E0
|
0xD2 |
メ | U+FF92 |
メ | U+30E1
|
0xD3 |
モ | U+FF93 |
モ | U+30E2
|
0xD4 |
ヤ | U+FF94 |
ヤ | U+30E4
|
0xD5 |
ユ | U+FF95 |
ユ | U+30E6
|
0xD6 |
ヨ | U+FF96 |
ヨ | U+30E8
|
0xD7 |
ラ | U+FF97 |
ラ | U+30E9
|
0xD8 |
リ | U+FF98 |
リ | U+30EA
|
0xD9 |
ル | U+FF99 |
ル | U+30EB
|
0xDA |
レ | U+FF9A |
レ | U+30EC
|
0xDB |
ロ | U+FF9B |
ロ | U+30ED
|
0xDC |
ワ | U+FF9C |
ワ | U+30EF
|
0xDD |
ン | U+FF9D |
ン | U+30F3
|
0xDE |
゙ | U+FF9E |
゛ | U+309B
|
0xDF |
゚ | U+FF9F |
゜ | U+309C
|
韓文字符
半形字符 | Unicode | 全形字符 | Unicode |
---|---|---|---|
ᅠ | U+FFA0 |
ㅤ | U+3164
|
ᄀ | U+FFA1 |
ㄱ | U+3131
|
ᄁ | U+FFA2 |
ㄲ | U+3132
|
ᆪ | U+FFA3 |
ㄳ | U+3133
|
ᄂ | U+FFA4 |
ㄴ | U+3134
|
ᆬ | U+FFA5 |
ㄵ | U+3135
|
ᆭ | U+FFA6 |
ㄶ | U+3136
|
ᄃ | U+FFA7 |
ㄷ | U+3137
|
ᄄ | U+FFA8 |
ㄸ | U+3138
|
ᄅ | U+FFA9 |
ㄹ | U+3139
|
ᆰ | U+FFAA |
ㄺ | U+313A
|
ᆱ | U+FFAB |
ㄻ | U+313B
|
ᆲ | U+FFAC |
ㄼ | U+313C
|
ᆳ | U+FFAD |
ㄽ | U+313D
|
ᆴ | U+FFAE |
ㄾ | U+313E
|
ᆵ | U+FFAF |
ㄿ | U+313F
|
ᄚ | U+FFB0 |
ㅀ | U+3140
|
ᄆ | U+FFB1 |
ㅁ | U+3141
|
ᄇ | U+FFB2 |
ㅂ | U+3142
|
ᄈ | U+FFB3 |
ㅃ | U+3143
|
ᄡ | U+FFB4 |
ㅄ | U+3144
|
ᄉ | U+FFB5 |
ㅅ | U+3145
|
ᄊ | U+FFB6 |
ㅆ | U+3146
|
ᄋ | U+FFB7 |
ㅇ | U+3147
|
ᄌ | U+FFB8 |
ㅈ | U+3148
|
ᄍ | U+FFB9 |
ㅉ | U+3149
|
ᄎ | U+FFBA |
ㅊ | U+314A
|
ᄏ | U+FFBB |
ㅋ | U+314B
|
ᄐ | U+FFBC |
ㅌ | U+314C
|
ᄑ | U+FFBD |
ㅍ | U+314D
|
ᄒ | U+FFBE |
ㅎ | U+314E
|
ᅡ | U+FFC2 |
ㅏ | U+314F
|
ᅢ | U+FFC3 |
ㅐ | U+3150
|
ᅣ | U+FFC4 |
ㅑ | U+3151
|
ᅤ | U+FFC5 |
ㅒ | U+3152
|
ᅥ | U+FFC6 |
ㅓ | U+3153
|
ᅦ | U+FFC7 |
ㅔ | U+3154
|
ᅧ | U+FFCA |
ㅕ | U+3155
|
ᅨ | U+FFCB |
ㅖ | U+3156
|
ᅩ | U+FFCC |
ㅗ | U+3157
|
ᅪ | U+FFCD |
ㅘ | U+3158
|
ᅫ | U+FFCE |
ㅙ | U+3159
|
ᅬ | U+FFCF |
ㅚ | U+315A
|
ᅭ | U+FFD2 |
ㅛ | U+315B
|
ᅮ | U+FFD3 |
ㅜ | U+315C
|
ᅯ | U+FFD4 |
ㅝ | U+315D
|
ᅰ | U+FFD5 |
ㅞ | U+315E
|
ᅱ | U+FFD6 |
ㅟ | U+315F
|
ᅲ | U+FFD7 |
ㅠ | U+3160
|
ᅳ | U+FFDA |
ㅡ | U+3161
|
ᅴ | U+FFDB |
ㅢ | U+3162
|
ᅵ | U+FFDC |
ㅣ | U+3163
|
其他字符
半形字符 | Unicode | 全形字符 | Unicode |
---|---|---|---|
⦅ | U+2985 |
⦅ | U+FF5F
|
⦆ | U+2986 |
⦆ | U+FF60
|
¢ | U+00A2 |
¢ | U+FFE0
|
£ | U+00A3 |
£ | U+FFE1
|
¬ | U+00AC |
¬ | U+FFE2
|
¯ | U+00AF |
 ̄ | U+FFE3
|
¦ | U+00A6 |
¦ | U+FFE4
|
¥ | U+00A5 |
¥ | U+FFE5
|
₩ | U+20A9 |
₩ | U+FFE6
|
│ | U+FFE8 |
│ | U+2502
|
← | U+FFE9 |
← | U+2190
|
↑ | U+FFEA |
↑ | U+2191
|
→ | U+FFEB |
→ | U+2192
|
↓ | U+FFEC |
↓ | U+2193
|
■ | U+FFED |
■ | U+25A0
|
○ | U+FFEE |
○ | U+25CB
|
⟨ | U+27E8
|
〈 | U+3008
|
⟩ | U+27E9
|
〉 | U+3009
|
⟪ | U+27EA
|
《 | U+300A
|
⟫ | U+27EB
|
》 | U+300B
|
⟬ | U+27EC
|
〘 | U+3018
|
⟭ | U+27ED
|
〙 | U+3019
|
⟦ | U+27E6
|
〚 | U+301A
|
⟧ | U+27E7
|
〛 | U+301B
|
OpenType
OpenType字體格式里定義了fwid
、halt
、hwid
和vhal
等GSUB
特性,可以為同樣一個編碼(碼位)的字符供替換成不同的字形(顯示形式)。
參見
- CJK
- 半形及全形字符 (Unicode區段)
- 半角假名
- 等寬字體
- Em尺寸——全角的實現形式
註釋
參考資料
外部連結
- East Asian Width(頁面存檔備份,存於網際網路檔案館) Unicode Standard Annex #11