URL 編碼/解碼 — UTF-8 安全
用於把文本安全嵌入 URL、查詢引數、表單資料。正確處理空格、特殊字元、Unicode (含 CJK 與表情符號)。
運作原理
URL 編碼是什麼
URL 限定使用一小組 ASCII 字元。要包含其他內容 — 空格、重音字元、漢字、表情符號、特殊符號 — 你需要把每個不安全位元組替換為 %XX (XX 是其十六進位制位元組值)。空格變 %20, 斜槓變 %2F, 漢字「漢」變 %E6%BC%A2 (其 UTF-8 位元組的百分號編碼)。
本工具使用瀏覽器內建的 encodeURIComponent 與 decodeURIComponent。它對所有非保留字元 (字母、數字、-._~) 進行編碼, 適合查詢引數與表單資料。
encodeURI 與 encodeURIComponent
JavaScript 有兩種編碼器。encodeURI 不轉義 URL 結構字元 (/、?、&、#、=、+ 等) — 用於完整 URL。encodeURIComponent 把那些都轉義 — 用於查詢引數內的值。
本工具使用 encodeURIComponent, 嵌入任意文本到 URL 時更安全。如有完整 URL 結構想保留, 只編碼需要部分。
常見陷阱
URL 中的「+」: 一些伺服器把 + 當空格 (舊錶單編碼遺留)。encodeURIComponent 不變 + 但伺服器可能解碼為空格。安全起見把 + 替換為 %2B 後再當資料傳送。
重複編碼: 對已編碼的字串再編碼會加一層 (% 變 %25, 「%20」變「%2520」)。先確認輸入是否已編碼再編碼。
長度增加: UTF-8 多位元組字元每個展開為 3-4 個百分號程式碼。100 字元的中文/日文字串 URL 中可能變 700+ 字元。
常見問題
›為什麼我的空格沒解碼為空格?
應該解碼 — 但如果 URL 含「+」也可能是空格 (舊錶單編碼)。需要時先把 + 替換為空格。
›支援表情符號?
支援。表情符號編碼為 UTF-8 位元組序列 (通常每個表情 4 位元組 / 4 個百分號程式碼)。
›URL 編碼與 HTML 編碼區別?
URL 編碼是 URL 上下文的 % 表示。HTML 編碼是 < > 等 HTML 轉義。不同上下文不同規則。
›什麼時候應該編碼?
把任何值放入 URL 查詢引數、含使用者輸入的路徑段、表單資料時編碼。不要對已構建的 URL 再編碼 — 那會重複編碼。
›為什麼解碼文本中「%」會出錯?
「%」後跟非有效十六進位制字元是無效百分號編碼。URL 中要包含「%」請編碼為「%25」。
›瀏覽器自動編碼嗎?
構建 URL 用 URL 或 URLSearchParams API 時瀏覽器自動處理。本工具用於臨時手動轉換。
›什麼字元是「安全」無需編碼?
字母 (A-Z、a-z)、數字 (0-9)、和: - . _ ~。其他都被 encodeURIComponent 轉義。
›資料會上傳嗎?
不會。編碼與解碼都在本地。
相關工具
最後更新: