工具包 KitBao工具包 KitBao
tutorialKitBao 小編· 更新於 2026-06-08· 2 分鐘閱讀

URL 編碼是什麼?網址出現 %20、亂碼的原因與解法

網址裡常看到 %20、%E4%B8%AD 這種怪東西?這篇用白話講清楚 URL 編碼是什麼、為什麼網址要編碼、中文網址為何變亂碼,以及怎麼線上編碼解碼,工程師和一般人都看得懂。

URL 編碼是什麼?網址出現 %20、亂碼的原因與解法

本文部分連結為聯盟連結,透過連結購買不會增加你的費用。

你一定看過網址裡出現 %20、或一長串 %E4%B8%AD 這種東西,第一眼以為是亂碼或壞掉了。其實那是 URL 編碼——一個讓網址能安全傳輸的機制。搞懂它,處理網址、查詢參數、中文連結就不會再一頭霧水。

為什麼網址需要編碼?

網址(URL)只允許使用一部分的字元。遇到這些情況就會出問題:

  • 空白:網址裡不能有空白
  • 中文等非英數字元
  • 特殊符號?&=/ 在網址裡有特殊意義(分隔參數等)

如果直接把這些字元放進網址,瀏覽器或伺服器可能會誤解。URL 編碼就是把它們轉成「% 加兩位十六進位」的安全格式。

那些 %XX 是什麼?

空白  → %20
中    → %E4%B8%AD (UTF-8 編碼)
?     → %3F
&     → %26

所以 https://example.com/search?q=台灣 美食 編碼後會變成:

https://example.com/search?q=%E5%8F%B0%E7%81%A3%20%E7%BE%8E%E9%A3%9F

看起來很可怕,但那不是亂碼——是「台灣 美食」被安全編碼後的樣子,解碼回來就正常了。

中文網址為什麼會變亂碼?

通常是編碼/解碼不一致:中文要用 UTF-8 編碼,如果某一端用了不同編碼、或不小心重複編碼了一次,解出來就會變亂碼。

解法:

  • 確保編碼用 UTF-8、且只編碼一次
  • 遇到看不懂的 %XX 字串,丟進解碼工具還原確認

encodeURI vs encodeURIComponent

寫程式的人常搞混這兩個 JavaScript 函式:

函式 編碼範圍 適合
encodeURIComponent ? & = / 也編 編碼「單一參數值」
encodeURI 保留網址結構符號 編碼「整條網址」

處理查詢參數最常用 encodeURIComponent,避免參數值裡的 &= 破壞整條網址結構。

怎麼編碼、解碼?

最快是用 KitBao 的 URL 編碼/解碼工具——貼上網址、參數或文字,選編碼或解碼,立刻互轉。它支援中文(UTF-8)、完全在瀏覽器內處理、資料不外傳,採 encodeURIComponent,處理查詢參數最實用。

編碼:台灣 美食  →  %E5%8F%B0%E7%81%A3%20%E7%BE%8E%E9%A3%9F
解碼:%E4%B8%AD  →  中

講白了

URL 編碼就是把「網址裡不能直接用的字元」(空白、中文、特殊符號)轉成 %XX 的安全格式,讓網路傳輸不出錯——那些 %20%E4%B8%AD 不是亂碼,是正常的編碼。中文亂碼多半是編碼不一致或重複編碼造成的。要編碼解碼,丟進 URL 編碼工具一鍵搞定。想了解另一個常見編碼,可看 Base64 是什麼

常見問題

URL 編碼是什麼?

URL 編碼(百分比編碼)是把網址中「不能直接使用的字元」轉換成 % 加兩位十六進位的安全格式。網址只允許部分字元,遇到空白、中文、或 ? & = 這類有特殊意義的符號時,就要編碼成像 %20(空白)、%E4%B8%AD(中)這樣,瀏覽器和伺服器才不會誤解。

為什麼網址裡會出現 %20、%E4%B8%AD 這種東西?

那就是 URL 編碼後的結果。%20 是空白字元編碼後的樣子;中文字(如「中」)以 UTF-8 編碼後會變成 %E4%B8%AD 這種一長串。它們不是亂碼或錯誤,而是把原本不能直接放進網址的字元,轉成安全格式讓網路傳輸不出錯。解碼回來就是原本的空白或中文。

中文網址為什麼有時會變亂碼?

通常是編碼/解碼不一致造成的。中文要以 UTF-8 編碼成 %XX 格式才能安全放進網址,如果某一端用了不同的編碼、或重複編碼了一次,解出來就會變亂碼。解法是確保編碼用 UTF-8、且只編碼一次;遇到看不懂的 %XX 字串,丟進 URL 解碼工具就能還原成中文確認。

encodeURI 和 encodeURIComponent 差在哪?

兩者都是 JavaScript 的 URL 編碼函式,差別在編碼範圍。encodeURIComponent 比較徹底,連 ? & = / 這些都會編碼,適合編碼「單一參數值」;encodeURI 則保留這些網址結構符號,適合編碼「整條網址」。處理查詢參數最常用的是 encodeURIComponent,避免參數值裡的特殊符號破壞網址結構。

相關文章