鼎稔道學館
☯️ 概念✓ 品質審核

全形與半形

全形與半形是文字的兩種顯示形式,用於描述電腦字元在螢幕上的寬度表現。「全形」指文字字身長寬比為一比一的正方形字元,而「半形」則為寬度約為全形一半的文字。這兩個術語源於傳統印刷術語,在現代電腦字元編碼中廣泛使用,用以區分不同寬度的文字符號。全形與半形的概念對於理解東亞文字(中文、日文、韓文)與西方文字在電腦系統中的顯示方式至關重要。

⬇ Markdown / Obsidian🔗 v20260504

全形與半形

概述

全形與半形是文字的兩種顯示形式,用於描述電腦字元在螢幕上的寬度表現。「全形」指文字字身長寬比為一比一的正方形字元,而「半形」則為寬度約為全形一半的文字。這兩個術語源於傳統印刷術語,在現代電腦字元編碼中廣泛使用,用以區分不同寬度的文字符號。全形與半形的概念對於理解東亞文字(中文、日文、韓文)與西方文字在電腦系統中的顯示方式至關重要。

術語淵源

傳統字體排印學

在傳統的字體排印學中,文字字身長寬比為一比一的正方形金屬鉛字原本稱作「全身」,而寬度只有一半的稱為「半身」。此外,對於小於一個「全身」的各種鉛空稱為「分空」,包括「二分空」「三分空」「四分空」「六分空」等多種規格。這套術語系統反映了傳統印刷術對字形尺寸的精細分類。

日文「角」的概念

「半角/全角」一詞源於日文,其中「角」(日语:かく,kaku)意為「方塊」。「全角/半角」在日文中即表示「正方形大小文字/半個正方形大小文字」的本意,與西文字體排印學中「Em」和「En」單位的含義相同。

然而,中文裡的「角」字雖然有「角度」「角落」等含義,卻沒有「方塊」的意思。中文在傳統字體排印中並不使用「全角/半角」的說法,而是說「全身/半身」。中文中使用「半角/全角」是電腦文字編碼技術引入時直接借用了日文用法的結果。

電腦編碼中的全形與半形

位元組與字元寬度的對應

在早期的電腦系統中,英語或拉丁字母語言使用的編碼方式,每一個字母或符號都使用一個位元組的空間(一個位元組由8位元組成,共256個編碼空間)來儲存。而漢語、日語及韓語文字由於數量遠超過256個,通常使用兩個位元組來儲存一個字元。這原本是編碼層面的「單位元組」與「雙位元組」問題。

在早期使用等寬字型(如DOS系統、部分文字編輯器等)的環境中,字型設計順應編碼形式,將中日韓文字的寬度繪製成拉丁字母和數字的兩倍,使字元的編碼儲存和顯示寬度一一對應。於是「單位元組」文字顯示成「半寬」,「雙位元組」文字顯示成「全寬」,使用者逐漸習慣稱中、日、韓等文字為「全形字元」,拉丁字母或數字為「半形字元」。

現代編碼的複雜性

後來電腦的字元編碼技術發生很大變化,儲存一個字元可能使用一個、兩個、三個甚至四個位元組(如UTF-8編碼)。一個英文字元即使顯示為半寬,根據不同的編碼方式,並不一定是用一個位元組儲存;而日文的片假名也不一定是雙位元組,也可能用一個位元組儲存(即「半形片假名」)。因此,現在字元編碼儲存和字元顯示寬度之間已沒有一一對應關係,但由於歷史習慣,「全形/半形」的用法仍被廣泛使用。

全形與半形的現義

目前對於電腦文字稱作「全形字」和「半形字」的指代存在相當程度的混亂。

「全形字」可能指:

  • 用兩個位元組儲存的字元
  • ASCII(拉丁字母、符號及阿拉伯數字)以外所有的字元
  • 顯示上字身寬度與字型高度相等(即字形外框為正方形)的字形

「半形字」可能指:

  • 用單位元組儲存的字元(可能包括片假名)
  • ASCII字元即拉丁字母、數字和常見符號
  • 顯示上字身寬度為字型高度一半的字形

為避免混亂,在使用「字寬」本意時,可以使用從英文翻譯的中文術語「全寬/半寬」(fullwidth/halfwidth)。

Unicode 東亞字寬特性

Unicode標準的附件十一(UAX #11)以資訊性附錄的形式,定義了東亞文字的字寬特性(East Asian Width),分為六種類型:

縮寫名稱描述
WWide(寬)自然的寬字元,如平假名
NaNarrow(窄)自然的窄字元,如ISO基本拉丁字母
FFullwidth(全寬)與自然窄字元具有Unicode等價性的寬式變體,如全寬拉丁字母
HHalfwidth(半寬)與自然寬字元具有Unicode等價性的窄式變體,如半形假名
AAmbiguous(模糊)在東亞雙位元組字元集和歐洲單位元組字元集中都有編碼的字元,如希臘字母
NNeutral(中性)未出現在東亞雙位元組字元集編碼中的字元,如天城文字母

常見全形與半形字元對照

ASCII 字元

ASCII標準字元均具有對應的全形版本。例如:半形驚嘆號「!」對應全形「!」(U+FF01);半形字母「A」(U+0041)對應全形「A」(U+FF21);半形數字「0」(U+0030)對應全形「0」(U+FF10)。所有ASCII字元(U+0020至U+007E)都有對應的全形版本,位於Unicode區段U+FF01至U+FF5E。

日文字元

日文JIS X 0201編碼中的半形假名(片假名)對應全形版本。例如:半形「ア」(U+FF71)對應全形「アイ」(U+30A2);半形「カ」(U+FF76)對應全形「力」(U+30AB)。

其他符號

部分貨幣符號和其他符號也存在全形與半形的區別。例如:半形美分符號「¢」(U+00A2)對應全形「¢」(U+FFE0);半形英鎊符號「£」(U+00A3)對應全形「£」(U+FFE1);日圓符號「¥」(U+00A5)對應全形「¥」(U+FFE5);韓圜符號「₩」(U+20A9)對應全形「₩」(U+FFE6)。

OpenType 字型特性

OpenType字型格式定義了多個與字寬相關的GSUB特性,包括:

  • fwid:將字元替換為全寬版本
  • hwid:將字元替換為半寬版本
  • halt:將字元替換為替代半寬版本
  • vhal:提供垂直方向的半寬變體

這些特性使同一個編碼(碼位)的字元可以根據需要替換成不同的顯示形式。

來源

校對記錄

  • 2026-05-04 確認錯誤:「日文『角』的概念」段落有明顯錯誤:『角』(kaku)在日文裡是「角、角落、邊角」之意,並非專指「方塊」;此處把『全角/半角』解釋成『正方形大小文字/半個正方形大小文字』也不精確。 → 正確:日文「角形(かくがた)」相關語境較接近「方形/全形」概念,但原句把「角(kaku)」直接定義為「方塊」不精確;「全角/半角」在日文中的核心是「一個字元佔用一個全形格/半形格」的排版寬度概念,而非字面上
  • 2026-05-04 確認錯誤:Unicode East Asian Width 的分類說明有明顯不準確:UAX #11 不是『附件十一』的正式譯法慣用說法;且 W 類並不是『自然的寬字元,如平假名』這種單一對應,平假名多數屬 W,但範圍描述過於簡化。更明顯的是 A 類例子『希臘字母』不全然正確,因為只有部分希臘字母屬 Ambiguous,不能概括整類。 → 正確:UAX #11 的正式名稱是 Unicode East Asian Width,不宜譯作「附件十一」;A(Ambiguous)類只表示在東亞與非東亞環境下寬度可能不同,例子不應概括為所有希臘字母。W
  • 2026-05-04 確認錯誤:『半形假名』對應『全形版本』的例子有錯:『半形ア』對應的是全形片假名『ア』,不是『アイ』;『半形カ』對應的是『カ』,不是『力』。 → 正確:半形片假名「ア」對應全形片假名「ア」,半形「カ」對應全形「カ」;「アイ」是兩個字元組成的字串,且「力」是不同漢字,原例子錯誤。
  • 2026-05-04 確認錯誤:『半形假名』與『全形版本』的說法在例子上混淆了字元與字詞:全形對應應是一個字元,不是兩個字元組成的『アイ』。 → 正確:半形「ア」對應的全形應是一個字元「ア」,不是兩個字元組成的「アイ」;原說法混淆了單一字元與字串。
  • 2026-05-04 確認錯誤:OpenType 特性說明有過度簡化:『這些特性使同一個編碼(碼位)的字元可以根據需要替換成不同的顯示形式』不夠準確,因為 GSUB 是字型替換,不是改變碼位本身;同一碼位是否有對應字形取決於字型是否支援。 → 正確:OpenType 特性主要是字型內的字形替換與排版行為,不是改變碼位本身;同一碼位能否顯示出特定替代字形,取決於字型是否提供相應 GSUB/GPOS 等支援。

法緣留言(

載入中…

ID: concept:fullwidth_halfwidth_characters · 最後更新:2026/5/5· 版本:20260504 · 版本歷史

Wikipedia 來源聲明:本條目部分內容取材自中文維基百科(zh.wikipedia.org)相應條目, 原內容採用 CC BY-SA 3.0 授權。本條目對其進行了重組、補充與校註,仍承襲 CC BY-SA 3.0 授權。

其他資料:學術論文(個別著作權)、本派傳承(CC0 1.0)。