← 返回科研導航

URL 編碼解碼

encodeURIComponent · 表單編碼 · 實時轉換 · 歷史記錄

English 简体 繁體

編碼模式

標準模式使用 encodeURIComponent / decodeURIComponent;表單模式會將空格編碼為「+」。

原文

結果

輸入內容後,編碼 / 解碼結果會實時顯示在這裏。

編碼對照

原文中需要轉義的字符逐個列出,方便核對編碼規則與 UTF-8 字節。

歷史記錄

轉換記錄只保存在你自己瀏覽器的 localStorage(最多 {n} 條),點擊條目可回填原文、模式與操作。

功能特性

使用方法

常見問題

encodeURIComponent 和 encodeURI 有什麼區別?
encodeURI 只轉義 URI 裏不允許出現的字符,保留 : / ? # & = 等結構符號,適合轉整個 URL;encodeURIComponent 除 A-Z a-z 0-9 - _ . ! ~ * ' ( ) 之外全部轉義(包含 : / ? # & = 空格與中文),適合轉 URL 的單個參數值。拼接請求參數、把內容塞進 URL 時用 encodeURIComponent 更安全,本工具標準模式就是它。
表單模式(x-www-form-urlencoded)和標準模式差在哪?
差別就在空格:標準模式把空格轉義成 %20,而 HTML 表單提交規範(application/x-www-form-urlencoded)要求空格編碼成 +。兩種寫法的含義相同(%20 與 + 都表示空格),但服務端按不同規範解析:解析表單體時見 + 轉空格,解析 URL 路徑與查詢參數時有的框架會把 + 也當空格、有的不會,所以參數值要帶空格時首選 %20,模擬表單提交時用 +。
解碼報「URI malformed」是怎麼回事?
decodeURIComponent 要求 % 後面緊跟兩位十六進制數字(0-9 a-f A-F)。字串裏出現 % 後不是合法十六進制、或 %XX 形成的字節序列不是合法的 UTF-8 編碼時,瀏覽器就會拋 URIError。常見來源:把已經解碼過的文本再解一次、中文文本被截斷、或從富文本編輯器貼上時帶入了不可見字符。
中文和 emoji 編碼後為什麼變成長串的 %XX?
URL 裏只允許 ASCII 字符,非 ASCII 字符要先按 UTF-8 編碼成字節,再把每個字節寫成 %XX。一個中文字符佔 3 個 UTF-8 字節所以是 %E4%B8%AD 這樣的 9 個字符,emoji 佔 4 個字節更長。這也是為什麼 URL 裏出現中文需要先編碼——解碼後它們會原樣還原回來。
我貼上的內容會上傳嗎?
不會。編碼、解碼、統計、對照表全部由頁面裏的 JavaScript 在你自己的瀏覽器記憶體中完成:本頁是純靜態頁面、沒有任何後端介面,文本不會發出瀏覽器。歷史記錄只寫在你設備自己的 localStorage 裏(最多 20 條),可以隨時一鍵清空。

關於本工具

URL 編碼解碼是一個純前端的在線工具:輸入文本,按「標準(encodeURIComponent)」或「表單(x-www-form-urlencoded)」兩種規則實時給出結果,並附字符/字節統計、逐字符編碼對照與本地歷史記錄。它解決的是前端開發、API 調試與爬蟲場景裏最常遇到的那類問題:中文字符、空格、&、#、? 一放進 URL 就出錯。

轉義引擎直接調用瀏覽器內置的 encodeURIComponent / decodeURIComponent(標準模式)與空格到 + 的替換(表單模式),沒有第三方庫、沒有後端、沒有統計腳本;所有輸入輸出都只存在於你自己的瀏覽器會話里。界面支持簡體 / 繁體 / English。

站內其他工具

純前端計算 · 瀏覽器本地處理 · 免費 · 支持中/繁/英