「全角/半角」是中文輸入環境特有的字元寬度概念。混用會導致程式碼報錯、資料庫存儲異常、文檔排版錯位。本文系統梳理定義、區別、適用場景與切換操作。
| 概念 | 字元寬度 | 佔用位元組 | 典型字元 |
|---|---|---|---|
| 全角 | 等寬漢字寬度 (兩個標準字元位置) | 2 bytes (GBK/GB2312) / 3-4 bytes (UTF-8) | 漢字、全角標點 (,。?!)、全角英數 (ABC123) |
| 半角 | 標準 ASCII 字元寬度 (一個標準字元位置) | 1 byte (ASCII/GBK) / 1 byte (UTF-8 ASCII) | ASCII 英數、半角標點 (, . ? !)、控制字元 |
| 類別 | 半角 (ASCII) | 全角 (中文標準) |
|---|---|---|
| 標點 | , . ? ! ' " ; : ( ) [ ] { } / \ | ~ ` @ # $ % ^ & * - _ + = < > | , 。 ? ! ‘ ’ “ ” ; : ( ) 【 】 〔 〕 、 · ― … |
| 英數 | A B C 1 2 3 | A B C 1 2 3 |
| 空格 | U+0020 (寬度窄) | U+3000 (寬度等漢字) |
常見預設:中文模式下 → 英數**半角**、標點**全角** (最符合中文排版習慣)。
# 錯誤:全角引號/冒號/空格
name="張三" # 全角等號、引號
print("Hello") # 全角括號
if x==1: # 全角冒號
# 正確:半角
name = "張三"
print("Hello")
if x == 1:
**編譯器/直譯器不認識全角符號**,會報 `SyntaxError`、`invalid character` 等極難排查的錯誤 (尤其混雜在長程式碼中)。
| 場景 | 英數 | 標點 | 空格 | 備註 |
|---|---|---|---|---|
| 寫代碼/命令/配置檔 | 半角 | 半角 | 半角 | 全程英文輸入法最省心 |
| 中文文檔/聊天/郵件 | 半角 | 全角 | 半角/全角均可 | 標點全角符合中文閱讀習慣 |
| 表單填寫 (姓名/地址) | 半角 | 全角 | 半角 | 避免資料庫存儲異常 |
| 搜尋引擎/網址列 | 半角 | 半角 | 半角 | 全角可能導致搜尋無結果/網址錯誤 |
養成「寫代碼切英文輸入法、寫文檔切中文輸入法+標點全角」的肌肉記憶,能省去 90% 的全/半角惱人問題。