URL 編碼器
讓網址通行無阻:將中文、空白與特殊符號轉換為 %20 等安全代碼
為什麼需要 URL 編碼 (Encode)?
網際網路的基礎協定 (RFC 3986) 規定,網址 (URL) 只能包含特定的 ASCII 字元(如英文大小寫、數字、連字號)。如果您的網址中包含了 中文、空白鍵、Emoji 或其他特殊符號,瀏覽器可能會看不懂,導致連結失效或伺服器錯誤 (400 Bad Request)。
這款 URL 編碼器 的作用,就是將這些「不合法」的字元,打包成瀏覽器看得懂的「百分號編碼 (Percent-Encoding)」,確保您的連結在世界任何角落、任何裝置上都能順利開啟。
核心原理:百分號編碼 (Percent-Encoding)
URL 編碼的規則很簡單:將不安全的字元轉換為其 十六進位 (Hex) 值,並在前面加上 % 符號。
常見的編碼對照
-
空白鍵 (Space): ASCII 32 ⮕ Hex 20 ⮕ %20
-
斜線 (/): ASCII 47 ⮕ Hex 2F ⮕ %2F
-
問號 (?): ASCII 63 ⮕ Hex 3F ⮕ %3F
-
中文字 (UTF-8): 每個中文字通常會轉成 3 組編碼(例如「我」⮕ %E6%88%91)。
常見的應用場景
1. 設定 UTM 行銷參數
行銷人員在設定廣告連結時,常需要在網址後方加入中文參數。
-
錯誤寫法:
?campaign=春季 特賣(空白鍵會讓連結斷掉)。 -
正確寫法:
?campaign=%E6%98%A5%E5%AD%A3%20%E7%89%B9%E8%B3%A3。
2. 後端 API 呼叫 (GET Request)
當工程師透過程式發送 GET 請求時,如果查詢字串 (Query String) 包含特殊符號(如 & 或 =),伺服器會誤以為這是參數的分隔符號。
-
必須將內容編碼,例如將
&轉為%26,伺服器才能正確讀取內容。
3. 處理中文檔名下載
如果伺服器上的檔案名稱是中文(例如 履歷表.pdf),直接提供連結有時會導致下載失敗。將檔名編碼為 %E5%B1%A5%E6%AD%B7%E8%A1%A8.pdf 是最保險的做法。
常見問題 (People Also Ask)
Q1:空白鍵到底要轉成 %20 還是 +?
兩者皆可,視位置而定。
-
標準 URL 編碼 (Path): 網址路徑部分,空白應轉為 %20。
-
表單數據 (Query String): 在
?後面的參數,傳統上會將空白轉為 + (例如q=hello+world)。 -
現代瀏覽器通常都能識別,但使用 %20 是最通用且安全的選擇。
Q2:為什麼編碼後的網址變得超級長?
因為 UTF-8 編碼 的關係。
-
英文數字編碼後長度不變 (1 byte)。
-
但 1 個中文字 通常會變成 9 個字元 (3 bytes × 3 個符號)。
-
例如「你好」兩個字,編碼後會變成
%E4%BD%A0%E5%A5%BD(18 個字元),所以網址長度會暴增。
Q3:哪些符號不需要編碼?
根據標準,以下「未保留字元 (Unreserved Characters)」是安全的,不需要編碼:
-
英文大小寫 (A-Z, a-z)
-
數字 (0-9)
-
連字號 (-)、底線 (_)、句點 (.)、波浪號 (~)
Q4:URL Encode 和 HTML Encode 通用嗎?
絕對不通用。
-
URL Encode: 處理網址,將空白轉為
%20。 -
HTML Encode: 處理網頁內容,將
<轉為<。 -
如果在網址裡使用 HTML Encode(例如把
?id=1<2轉成?id=1<2),伺服器會收到錯誤的參數。