在表單輸入電話號碼,系統卻一直說「格式錯誤」;密碼明明沒打錯,就是登不進去;Excel 裡兩格資料看起來一模一樣,VLOOKUP 卻回傳找不到。這些狀況很多時候都是同一個原因:文字裡混進了全形字元。這篇文章說明全形與半形到底差在哪裡、為什麼會有兩套字,以及什麼情況該用哪一種。如果只是想快速把文字整理乾淨,可以直接使用全形半形轉換工具,貼上文字就會即時轉好。
全形與半形是什麼?
「半形」字元的寬度大約是一個漢字的一半,用英文鍵盤直接打出來的 A、1、, 都是半形。「全形」字元則和漢字一樣寬,例如 A、1、,。把兩種字排在一起就很容易看出差別:
半形:ABC123 Hello
全形:ABC123 Hello
重點是,它們不只是「字體比較寬」。在電腦裡,全形的 A 和半形的 A 是兩個不同的字元,各有自己的編碼。對人來說是同一個字母,對程式來說卻像「A」和「B」一樣是兩回事。
為什麼會有兩套字?
這是早期電腦留下來的設計。當年的中文、日文系統使用等寬字型,畫面上每個字的寬度固定,一個漢字剛好占兩個英文字母的位置。為了讓中英文混排時能對齊,當時的中日文編碼另外收錄了一組和漢字同寬的英文字母、數字與符號,這就是全形英數的由來。
後來各國文字統一收進 Unicode,為了能和舊編碼的資料互相轉換而不遺失資訊,這組字元也被保留下來。因此直到今天,輸入法仍然可以切換全形與半形,舊文件、掃描辨識出來的文字或網頁上,也常常看得到全形英數。
全形和半形怎麼對應?
在 Unicode 裡,全形的英文字母、數字與一般符號排在 U+FF01 到 U+FF5E,排列順序和半形的 U+0021 到 U+007E 完全相同,兩段剛好相差 0xFEE0,換成十進位是 65248。所以轉換其實只是一個加減法:
全形 A:U+FF21 = 65313
65313 - 65248 = 65 = U+0041 → 半形 A
全形 1:U+FF11 = 65297
65297 - 65248 = 49 = U+0031 → 半形 1
不過有幾個常用字元不在這一段裡,需要另外對照:
| 全形 | 編碼 | 對應的半形 |
|---|---|---|
| 全形空白 | U+3000 | 半形空白(U+0020) |
| 。 | U+3002 | .(U+002E) |
| 、 | U+3001 | 沒有專屬的半形,通常以 , 代替 |
至於 「」、『』 這類引號,半形並沒有對應的符號,轉換時應該保持不變。另外日文還有「半形片假名」(例如 ア),那是另一組字元,和這裡談的英數全半形不同。
什麼時候該用半形?
原則很簡單:會被電腦拿去比對或計算的內容,用半形。
- 帳號、密碼、電子郵件、網址:這些都是逐字比對的,差一個字元就不算相同。
- 表單裡的數字:電話、身分證字號、統一編號、信用卡卡號、金額、日期。許多表單只接受半形數字,打成全形就會顯示格式錯誤。
- Excel 與試算表的資料:全形數字會被當成文字,無法加總;拿來查找的代號如果全半形不一致,就比對不到。
- 程式碼與指令:符號必須是半形,全形的括號或引號會直接造成錯誤。
什麼時候用全形?
給人閱讀的中文文章,標點符號通常使用全形,像是逗號 ,、句號 。、問號 ? 和括號 ()。這些符號和漢字等寬,夾在中文裡看起來比較整齊,也不會擠在一起。而文章裡的英文單字和阿拉伯數字,多半仍使用半形,例如「共 25 人參加」「使用 Excel 整理」。
寫論文、公文或投稿時,每個單位對標點、數字與英文的寫法要求不盡相同,沒有一套放諸四海皆準的規則。最可靠的做法是直接查閱學校、機關或期刊公布的格式規定,再依照規定統一全文的寫法。一致性比選哪一種更重要:同一份文件裡不要有的地方用全形數字、有的地方用半形。
常見問題一:密碼打對了卻登入失敗
密碼欄位會把輸入的字元顯示成圓點,所以完全看不出打的是全形還是半形。如果輸入法剛好停在全形模式,你以為自己輸入了 abc123,實際送出的卻是 abc123,系統當然判定密碼錯誤。
遇到這種情況,可以先在記事本或網址列打幾個字,看看字是不是特別寬;確認後把輸入法切回半形,或乾脆切到英文輸入模式再打一次。在 Windows 的注音輸入法中,通常可以用 Shift+空白鍵切換全形與半形,很多人就是不小心按到這組按鍵才切過去的。
常見問題二:Excel 的 VLOOKUP 找不到資料
假設要用員工編號 A001 去另一張表查姓名,卻一直得到 #N/A。常見的原因有兩個:
- 全半形不一致:一邊是
A001,另一邊是A001,或只有其中一兩個字是全形。 - 多了看不見的空白:資料前後多了空白,例如
A001後面跟著一個空白。
第二種情況要特別小心:Excel 的 TRIM 函數只會移除半形空白,如果多出來的是全形空白,TRIM 處理不到。比較省事的做法是把兩邊的資料欄整欄複製,貼進全形半形轉換工具,選擇「全形 → 半形」,勾選英文字母、數字、空白,再勾選「移除多餘空白」,把結果貼回 Excel 之後重新比對。
整理文字時的幾個小提醒
- 標點不要一股腦全轉:把中文文章的
,。全部轉成半形,讀起來反而奇怪。只想修正英數時,不要勾選標點符號。 - 小心小數點和網址:把半形句點轉成全形句號時,
3.14和example.com裡的點不應該被改掉。本站的工具會保留夾在數字或英文之間的句點,以及完整的網址與電子郵件。 - 中英文之間的空白:不少人習慣在漢字和英數之間留一個半形空白,例如把「我用iPhone拍照」寫成「我用 iPhone 拍照」,閱讀起來比較舒服。這屬於排版習慣而不是硬性規定,工具裡也提供了自動補空白的選項。
- 敏感資料:轉換工具是在瀏覽器裡處理文字、不會上傳,但密碼這類資料仍然不建議貼到任何網頁上,直接切換輸入法重新輸入最安全。
小結
- 全形與半形是不同的字元,不只是寬度不同,電腦不會把它們當成同一個字。
- 兩套字是早期中日文系統為了對齊版面留下來的設計,Unicode 為了相容而保留。
- 要讓電腦比對或計算的內容(帳號、密碼、表單數字、Excel 資料)用半形;中文文章的標點通常用全形。
- 密碼登入失敗、VLOOKUP 找不到資料時,先檢查是不是混進了全形字或多餘的空白。
下次遇到文字裡全半形混雜的情況,把它貼進全形半形轉換,幾秒鐘就能整理成一致的格式。