URL Encoder

URL Encoder / Decoder

把任意文字編碼成 URL 安全的 percent-encoded 字串,或把編碼網址還原回明文。即時預覽、UTF-8 安全,完全在你的瀏覽器中執行。

純文字

0 字元

編碼結果

0 字元

為什麼選擇 iKit URL Encoder

快速、精準、純瀏覽器執行 — 為開發者、寫手、debug 網址的人打造。

三種編碼模式

依用途選 Component、Full URI 或 Form 模式 — 編 query-string 值、整段網址、或 HTML form 內容,各有正確做法。

注重隱私

編碼/解碼都用瀏覽器原生 JavaScript 完成,文字和網址完全不離開你的裝置。

即時預覽

每次輸入都立即更新結果,不用按「編碼」按鈕,也沒有伺服器來回延遲。

UTF-8 安全

Emoji、中文、日文、韓文、有重音的拉丁字、西里爾字母都能正確雙向轉換。

Form 風格的 + 處理

解碼時可選擇把 + 視為空格 — HTML form 用 application/x-www-form-urlencoded 時的慣例。

支援檔案處理

拖入 .txt、.csv、.json 一次編碼或解碼整個檔案,輸出乾淨的 .txt 下載。

URL 編碼實際是怎麼運作的

三個瀏覽器原生 API、三種模式,全部在這個分頁裡跑。

  1. 1

    你在編輯器中輸入

    每次按鍵,輸入字串會傳給一個小型 JavaScript 函式。沒有 debounce、沒有 API 呼叫、沒有 fetch — 函式在你的瀏覽器分頁中同步執行。

  2. 2

    選擇模式

    Component 呼叫 encodeURIComponent() — 編碼所有非 A-Z a-z 0-9 - _ . ~ 字元。URI 呼叫 encodeURI() — 保留 :/?#=& 讓整段 URL 結構維持有效。Form 用 encodeURIComponent 後把空格換成 +,符合 application/x-www-form-urlencoded 規範。

  3. 3

    UTF-8 自動處理

    encodeURIComponent 和 encodeURI 內部會把字串轉成 UTF-8 位元組,再對每個非安全位元組做 percent-encoding。所以中文「中」會變 %E4%B8%AD — 完全符合 RFC 3986。

  4. 4

    結果即時呈現

    結果寫進唯讀的輸出框。按「複製」會用 navigator.clipboard.writeText() 寫入剪貼簿,按「下載」會用 Blob URL 存成 .txt,兩者都不離開瀏覽器。

常見使用情境

選對模式可以避開 bug 的真實情境。

組 query string 的值

任何使用者輸入要塞到 <code>?q=...</code> 都必須用 Component 模式。URI 模式會把 <code>=</code> 和 <code>&amp;</code> 留下不編,如果值裡面有這些字元,整段 URL 會壞掉。

在聊天工具分享長網址

有些聊天 app、PDF 看到網址裡有空格或非 ASCII 字元會壞掉。先用 URI 模式把整段網址跑一輪,變成到處都能正確貼上的格式。

Debug 後端 400 錯誤

當 API 拒絕你的請求時,把網址貼到 Decode 模式,看伺服器實際收到什麼。雙重編碼(<code>%</code> 自己被編成 <code>%25</code>)的問題會立刻浮現。

表單資料 round-trip

Debug <code>application/x-www-form-urlencoded</code> 的 POST body 時,記得勾「+ 視為空格」 — 那是瀏覽器的慣例,忘記勾是「為什麼我的使用者名稱出現一堆加號」這種 bug 的頭號原因。

為什麼本地編碼很重要

你要編碼的網址常常含有真實客戶 email、ID、session token — 這些東西絕對不應該貼到陌生人的伺服器工具上。iKit URL Encoder 就是這個頁面裡早就載完的 JavaScript,輸入完全不離開你的分頁。

  • 編碼解碼期間沒有 <code>fetch()</code>、<code>XHR</code>、beacon。
  • 頁面載入後可離線使用。
  • 沒有 log、沒有限流、不用註冊、無每日額度。

常見問題

Component、URI、Form 三種模式差在哪?

Component (encodeURIComponent) 會把所有非「保留字元」全部 percent-encode,適合 query 值、單一欄位。URI (encodeURI) 會保留 :/?#=& 這些 URL 結構字元,適合整段網址。Form (application/x-www-form-urlencoded) = Component + 空格變成 +,是 HTML form 用的慣例。

為什麼有些字元沒被編碼?

RFC 3986 定義一組「unreserved characters」不需要編碼:A-Z a-z 0-9 - _ . ~。其他都會被 percent-encoded。encodeURIComponent 還會多編碼 :/?#&=,但 encodeURI 不會 — 差別在編「query 值」還是「整段 URL」。

為什麼解碼後文字看起來怪怪的?

三個常見原因:(1) 原本是 Form 編碼,+ 應該被視為空格 — 把那個選項打開。(2) 雙重編碼 — 輸入被編了兩次,再解一次。(3) 無效的 percent 序列 — % 後面不是兩個 hex 字元。錯誤訊息會指出哪個位置。

編碼結果跟 JavaScript 的 encodeURIComponent 完全一樣嗎?

Component 模式完全一樣 — 我們直接呼叫 encodeURIComponent。Form 模式多做 RFC 3986 + WHATWG 的調整(! ' ( ) * 變成 %21 %27 %28 %29 %2A)。URI 模式呼叫 encodeURI,等同大多數語言所說的「percent-encode 一段 URL」。

我的網址會被上傳嗎?

不會。整個工具就是這個頁面裡的 JavaScript,編碼解碼都在你的瀏覽器中完成。可以開 DevTools → Network 觀察 — 編碼解碼時不會發出任何請求。