URL 編碼/解碼器

免費線上 URL 編碼與解碼:把 %E4%BD%A0%E5%A5%BD 這種編碼轉回中文,重複編碼一次解到底、認得 Big5 舊網址,網址參數自動拆成表格。

立即使用URL 編碼/解碼器(免費、免註冊)

網址裡看到 %E4%B8%AD%E6%96%87 這種一長串,貼進來按「解碼」就變回「中文」;反過來要把中文、空格、& 放進網址,選好範圍按「編碼」。被編碼兩次的會一次解到底,台灣舊網站的 Big5 網址也認得,有參數的網址還會自動拆成表格。全部在瀏覽器處理,不上傳。

為什麼網址會變成 %XX

網址只能用英文字母、數字與少數符號。中文、空格或有特殊意義的符號要放進網址時,瀏覽器會先把它轉成 UTF-8 位元組,每個位元組寫成「% 加兩位十六進位數字」,這叫百分比編碼(URL 編碼)。一個中文字在 UTF-8 是 3 個位元組,所以會變成 9 個字元。

常見字元編碼後的樣子
原本參數值模式(encodeURIComponent)整個網址模式(encodeURI)
中%E4%B8%AD%E4%B8%AD
空格%20%20
&%26&(保留)
/%2F/(保留)
?%3F?(保留)
#%23#(保留)
%%25%25

英文字母、數字與 - _ . ! ~ * ' ( ) 兩種模式都不會編碼。

兩種編碼範圍怎麼選

  • 網址參數值:要放進 ?q= 後面的值用這個。& ? = / # 都會被編碼,才不會被當成網址結構——例如搜尋「A&B」要寫成 A%26B,不然 & 會被當成下一個參數的開始。
  • 整個網址:手上是一條含中文的完整網址,要變成可以貼進信件或程式的連結,用這個。它保留 : / ? # & = 等結構符號,只編中文與空格。

把整個網址用參數值模式編碼,https:// 會變成 https%3A%2F%2F,網址就不能用了;反過來,參數值用整個網址模式編碼,裡面的 & 不會被編,參數會被切斷。

解碼遇到的三種怪情況

  • 被編碼了兩次:% 本身又被編成 %25,看到 %25E4%25B8%25AD 這種就是。勾選「一次解到底」(預設開啟)會一路解到不能再解為止(最多 5 層),並告訴你編了幾次;想一層一層看就取消勾選,用「放回輸入」再解一次。
  • 台灣舊網站的 Big5 網址:有些舊的 ASP 網站、論壇用 Big5 編碼,「中文」會是 %A4%A4%A4%E5,用 UTF-8 解不開。工具會自動改用 Big5 試解,解得出來就顯示給你。
  • + 號:表單送出的網址用 + 代表空格(例如 ?q=hello+world)。一般解碼只把 %20 當空格,這種情況勾「把 + 當成空格」。

三種情況的例子

%25E4%25B8%25AD
  → 解一次:%E4%B8%AD
  → 再解一次:中

%A4%A4%A4%E5
  → UTF-8 解不開,改用 Big5:中文

hello+world
  → 勾「+ 當空格」:hello world

網址參數表與一次處理很多行

貼上帶參數的網址(例如從廣告後台或信件複製的追蹤連結),下方會自動列出每個參數與解碼後的值,utm_source、utm_campaign 這些一眼就看得到;網址裡 # 之後的片段也會另外標出來,它只在瀏覽器裡使用,不會送到伺服器。

勾「每一行分開處理」,一次貼一整排網址或關鍵字,每一行各自編碼或解碼,換行會保留;某一行格式有錯,會告訴你是第幾行。按過一次編碼或解碼之後,再修改輸入或選項都會自動重算。

URL 編碼/解碼器功能特點

  • 解碼:%E4%B8%AD 這類百分比編碼轉回中文與符號
  • 編碼:中文、空格、& ? = 等轉成網址可用格式
  • 可選「整個網址」模式:保留 : / ? # & = 網址結構,只編中文與空格
  • 解碼可把表單格式的 + 當成空格
  • 被編碼好幾次的(%25E4…)一次解到底,並告訴你編了幾次
  • UTF-8 解不開時試 Big5,台灣舊網站的網址也能還原
  • 網址參數自動拆成表格,值已解碼
  • 可每一行分開處理,一次貼很多網址
  • 按過編碼或解碼後,修改輸入會自動重算;結果可一鍵放回輸入
  • 結果與 JavaScript 的 encodeURIComponent/encodeURI/decodeURIComponent 一致
  • 格式錯誤時指出是哪一段壞了,不會整頁壞掉
  • 在瀏覽器處理,不上傳

如何使用URL 編碼/解碼器?

  1. 貼上要處理的網址或文字(有參數的網址會自動列出參數表)
  2. 選編碼範圍:只編參數值,或整個網址
  3. 要把 %XX 變回中文按「解碼」;要轉成網址格式按「編碼」
  4. 複製結果,或按「放回輸入」再轉一次

URL 編碼/解碼器常見問題

網址複製出來變成 %E4%B8%AD 一長串,怎麼變回中文?

那是 URL 編碼(百分比編碼):瀏覽器把中文轉成 UTF-8 位元組,每個位元組寫成 %XX。把整串貼到這裡按「解碼」就會變回中文,例如 %E4%B8%AD%E6%96%87 會變成「中文」。

什麼時候需要 URL 編碼?

網址的參數值裡有中文、空格或 & ? = # / 這類有特殊意義的符號時,要先編碼,否則網址會被截斷或誤解。例如搜尋字「A&B」要寫成 A%26B,否則 & 會被當成下一個參數的開始。

「網址參數值」和「整個網址」兩種編碼差在哪?

參數值模式(encodeURIComponent)連 : / ? & = # 都會編碼,適合放進 ?q= 後面的值;整個網址模式(encodeURI)保留這些網址結構符號,只編中文、空格等,適合把含中文的完整網址轉成可用的連結。把整個網址用參數值模式編碼,https:// 會變成 https%3A%2F%2F,網址就不能用了。

解碼後「+」號沒有變成空格?

預設用 decodeURIComponent,只把 %20 解成空格。表單送出的查詢字串(application/x-www-form-urlencoded)會用 + 代表空格,這種情況請勾選「把 + 當成空格」再解碼。

解碼時出現錯誤是什麼原因?

通常是編碼不完整,例如網址被截斷只剩 %E4%B8 半個字,或文字裡本來就有單獨的 % 符號(要寫成 %25)。本工具會指出是哪一段出錯。

URL 編碼跟 Base64 一樣嗎?

不一樣。URL 編碼只把網址不能用的字元換成 %XX,其他字元照原樣,所以還看得出原本的英文;Base64 是把整段資料換成另一套 64 個字元,完全看不出原文。要處理 Base64 請用站上的 Base64 編碼解碼工具。

網址參數裡的中文要編碼嗎?現在的瀏覽器不是會自動處理?

在網址列直接打中文,瀏覽器會自動編碼後送出;但在程式裡組網址、寫進 HTML 連結或寄信時,要自己先編碼,不然有些系統會截斷或變成亂碼。放在參數值裡的一律用「網址參數值」模式。