開發工具

URL 編碼/解碼工具

在瀏覽器中進行 UTF-8 百分比編碼與解碼,同時比較 encodeURIComponent 與 encodeURI 結果,並可複製或儲存為 UTF-8 文字檔。

關於URL 編碼/解碼工具

UTF-8 百分比編碼與解碼

百分比編碼會將需要轉換的 UTF-8 位元組表示成百分比符號加上兩位十六進位數字。例如,元件編碼會將 奶茶 & 咖啡 轉成 %E5%A5%B6%E8%8C%B6%20%26%20%E5%92%96%E5%95%A1。空白變成 %20& 變成 %26。解碼則將這些序列還原為文字。

輸入與輸出長度以 UTF-16 編碼單元計算,不一定等於畫面上的字數。例如 😀 佔兩個編碼單元,組合式表情符號可能佔更多。

選擇元件編碼或 URI 編碼

查詢參數值等個別 URI 元件請使用 encodeURIComponent。它保留英文字母、數字及 - _ . ! ~ * ' ( )。若需保留 URI 的分隔符號,請使用 encodeURI,它另外保留 ; / ? : @ & = + $ , #。兩種方式都會編碼方括號 [ ]

例如,對 https://example.com/search?q=珍珠奶茶&size=large 使用 URI 編碼時,中文會被編碼,而網址的分隔符號會保留。若查詢參數的值本身包含 &,請先對該值使用元件編碼,再組合成網址。

本工具不會檢查網址的有效性或安全性,也不會將國際化網域名稱轉成 Punycode。原本的 % 會變成 %25,請勿未經確認就重複編碼已處理過的網址。

解碼不等於解析表單資料

解碼只執行一次 decodeURIComponent,會保留前後空白及原本的加號。不會解析 application/x-www-form-urlencoded 表單資料,也不會把 + 轉成空白。只支援 UTF-8 百分比解碼,不會自動偵測 Big5 等其他字元編碼。百分比序列錯誤、UTF-8 位元組序列無效或包含未配對的代理碼元時,會顯示錯誤,不會提供部分結果。

例如 奶茶+咖啡%2B牛奶 會變成 奶茶+咖啡+牛奶%2520 只會變成 %20。只有來源格式確實需要時,才應再次解碼。解碼保留字元可能改變網址的解讀方式。百分比編碼不是加密,也不能代替 HTML 跳脫處理。

輸入限制、套用結果、複製與儲存

編碼輸入上限為 100,000 個 UTF-16 編碼單元;解碼輸入及各項結果上限為 900,000 個。超過上限時不會產生結果,縮短輸入後即可恢復轉換。最大的編碼結果可移入解碼模式;解碼結果若超過 100,000 個編碼單元,則無法移入編碼模式,請複製後分段處理。

切換模式會保留輸入內容。「使用結果並切換模式」在編碼時使用元件編碼結果,在解碼時使用解碼結果。「清除」會移除輸入與結果。

可直接複製結果,或選取後手動複製。顯示或貼上時,換行可能改變。「儲存 UTF-8」會開始下載文字檔,保留結果的原始換行位元組。不會額外加入位元組順序標記(BOM),但會保留文字原本的 BOM。開始下載不代表裝置已完成儲存。

若複製仍在處理中,請先等候,不要複製其他內容,以免先前的操作稍後完成並覆寫剪貼簿。約五秒仍未確認完成時,工具會顯示未確認訊息;背景分頁或裝置休眠可能延遲這個提示。瀏覽器已開始的寫入無法取消。

轉換工具不會將輸入文字上傳到伺服器。頁面仍可能因廣告及使用情況統計而發出網路請求;成功操作的統計資料不包含輸入或結果內容。

常見問題

Q. 該使用哪一種編碼結果?
查詢參數值等個別 URI 元件請使用 encodeURIComponent;需要保留 URI 分隔符號時,請使用 encodeURI。兩者都會保留英文字母、數字及部分標點符號,也都不會驗證網址是否有效或安全。
Q. 空白與加號會如何處理?
兩種編碼都會將空白轉成 %20。解碼會保留原本的 + 及前後空白,不會套用表單格式中將 + 轉成空白的規則。
Q. 為什麼無法解碼?
每個 % 後面必須有兩位十六進位數字,而且編碼後的位元組必須組成有效的 UTF-8 序列。本工具不會自動判斷 Big5 等其他字元編碼,也不接受未配對的代理碼元。
Q. 可以自動解除雙重編碼嗎?
不會。每次只解碼一次,例如 %2520 會變成 %20。重複解碼可能改變網址的含義,請先確認來源資料使用的編碼方式。
Q. 輸入上限是多少?文字會上傳嗎?
編碼輸入上限為 100,000 個 UTF-16 編碼單元;解碼輸入及各項結果上限為 900,000 個。切換模式會保留輸入。轉換工具不會上傳文字,但頁面的廣告與使用情況統計仍可能發出網路請求。

資料來源與規格

相關工具

有問題或建議嗎? 聯絡 NanToo

為這項工具評分
(0 則評分)