URL 編碼器

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: 處理網頁內容,將 < 轉為 &lt;

  • 如果在網址裡使用 HTML Encode(例如把 ?id=1<2 轉成 ?id=1&lt;2),伺服器會收到錯誤的參數。

Cookie
我們重視您的數據,並希望使用 Cookie 來提升您的體驗