全形字元佔一個漢字的寬度,半形佔一半。中文輸入法常在不經意間打出全形的英數字,ABC123 看起來只是比較寬,送進系統卻和 ABC123 是完全不同的字串,於是查無資料、驗證失敗。這個工具在兩者之間雙向對換,即時顯示結果,換算過程留在你的瀏覽器裡。
使用步驟
- 用上方兩顆按鈕選方向:「半形 → 全形」或「全形 → 半形」,預設是前者。
- 把文字貼進左邊的「輸入」框,右邊的「輸出」框同步更新,不需要按下任何確認。換方向不會清掉已經輸入的內容,可以直接切過去看反向的結果。
- 用右下角的「複製」帶走輸出;左下角的「清空」把輸入框倒空。
什麼時候用得上
修好從 Excel 或 Word 貼過來的編號欄位
發票號碼、統一編號、手機號碼被存成全形之後,用 VLOOKUP 對不到、上傳系統會被擋、寄簡訊會失敗。把整欄貼進來跑一次「全形 → 半形」再貼回去,比逐格重打快,也不會像重打那樣打錯數字。
清洗要送進資料庫或 API 的使用者輸入
使用者填的 email 與網址常常夾著全形的 @ 或 .,肉眼幾乎看不出差別。在寫驗證規則之前先把樣本轉成半形,就能確認到底是規則太嚴還是資料真的有問題。
排版需要等寬時把英數字改成全形
公文、獎狀、直排的書籍內文裡,半形數字夾在漢字之間會顯得忽大忽小。換成全形之後每個字元寬度一致,直排時也不會出現躺著的數字。
限制與注意事項
- 「半形 → 全形」處理的是 ASCII 可見字元
!到~(含英文字母、數字、所有英文標點),外加把半形空格換成全形空格。Tab 與換行維持原狀,不會被轉換也不會被吃掉。 - 「全形 → 半形」的來源是
!到~這一段,加上全形空格轉回半形空格。關鍵在於這一段包含了中文常用的,、(、)、:、?——整段中文貼進來做半形轉換,這些標點會一併變成,、()、:等英文標點。相對地,。、、、「」、《》住在別的區段,不在轉換範圍內,會原樣留著,於是中文稿子跑完常出現逗號變窄、句號沒變的參差外觀。 - 日文的半形片假名
アイウ與全形貨幣符號¥、£都不在對應表裡,兩個方向都不會動到它們;不斷行空格 U+00A0 也不會被當成半形空格處理。 - 網址、程式碼、JSON 不適合做「半形 → 全形」:
https://a.com會變成https://a.com,外觀相近但已經不能點也不能執行。 - 這頁沒有檔案上傳,只吃貼進文字框的內容;轉換是這個分頁的 JavaScript 直接做的,你的文字不會被送出去。頁面本身仍會向第三方載入廣告等資源,那與輸入框的內容無關。
常見問題
為什麼轉成半形後,中文的逗號變成了英文逗號?
因為全形逗號 , 就落在這次轉換涵蓋的那一段字元裡,它的半形對應剛好是 ,,程式無從分辨你想修的是「全形的英文逗號」還是「中文的逗號」。如果目的只是把英數字改回半形,建議先把要處理的欄位單獨挑出來再轉,不要把整篇內文丟進去。
那為什麼句號和引號又沒有跟著變?
中文的 。、「」 和全形英數字並不住在同一個字元區段,它們沒有一對一的半形版本,因此不在對應表裡。這也解釋了為什麼一篇中文稿轉完之後標點看起來參差不齊。
轉過去再轉回來,內容保證一樣嗎?
純英數字與英文標點來回轉兩次會完整還原,這一段是嚴格的一對一對應。真正回不去的是空白:原本混用了全形與半形空格的段落,來回之後會被統一成同一種,數量不變但寬度已經和你一開始的不同。
可以只轉數字、不動英文字母嗎?
目前不行,畫面上只有方向選擇,沒有字元類別的篩選。實務做法是先把要處理的那幾行單獨複製出來轉換再貼回原處;若整份文件只想動數字,用編輯器的正規式取代會比較精準。